From 8d6ba17aace6f91e74f709a88b9980c4d8dd1093 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Thu, 28 May 2026 19:05:51 +0800 Subject: [PATCH 01/18] ci: dedupe profile-validation PR comments, clean up on success --- .github/workflows/check_profiles.yml | 14 +++++---- .github/workflows/check_profiles_comment.yml | 30 ++++++++++++++++---- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/.github/workflows/check_profiles.yml b/.github/workflows/check_profiles.yml index d24e27ac89..806470b18b 100644 --- a/.github/workflows/check_profiles.yml +++ b/.github/workflows/check_profiles.yml @@ -101,12 +101,18 @@ jobs: ./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 2>&1 | tee ${{ runner.temp }}/validate_custom.log exit ${PIPESTATUS[0]} + - name: Prepare PR number for comment workflow + if: ${{ always() && github.event_name == 'pull_request' }} + run: | + mkdir -p ${{ runner.temp }}/profile-check-results + echo "${{ github.event.pull_request.number }}" > ${{ runner.temp }}/profile-check-results/pr_number.txt + - name: Prepare comment artifact if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.indentation_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }} run: | - mkdir -p ${{ runner.temp }}/profile-check-results - { + # Marker matched by check_profiles_comment.yml to delete prior comments. + echo "" echo "## :x: Profile Validation Errors" echo "" @@ -150,10 +156,8 @@ jobs: echo "*Please fix the above errors and push a new commit.*" } > ${{ runner.temp }}/profile-check-results/pr_comment.md - echo "${{ github.event.pull_request.number }}" > ${{ runner.temp }}/profile-check-results/pr_number.txt - - name: Upload comment artifact - if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.indentation_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }} + if: ${{ always() && github.event_name == 'pull_request' }} uses: actions/upload-artifact@v7 with: name: profile-check-results diff --git a/.github/workflows/check_profiles_comment.yml b/.github/workflows/check_profiles_comment.yml index 784f99b24a..21098cc467 100644 --- a/.github/workflows/check_profiles_comment.yml +++ b/.github/workflows/check_profiles_comment.yml @@ -10,12 +10,19 @@ on: permissions: pull-requests: write + # Needed to delete outdated bot comments via the issues/comments endpoint. + issues: write + +# Serialize handlers per source branch so parallel runs don't race delete-and-post. +concurrency: + group: ${{ github.workflow }}-${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }} + cancel-in-progress: false jobs: post_comment: name: Post PR comment runs-on: ubuntu-24.04 - if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'failure' }} + if: ${{ github.event.workflow_run.event == 'pull_request' && (github.event.workflow_run.conclusion == 'success' || github.event.workflow_run.conclusion == 'failure') }} steps: - name: Download artifact id: download @@ -26,14 +33,14 @@ jobs: run-id: ${{ github.event.workflow_run.id }} github-token: ${{ github.token }} - - name: Post comment on PR + - name: Update PR comment if: ${{ steps.download.outcome == 'success' }} env: GH_TOKEN: ${{ github.token }} GH_REPO: ${{ github.repository }} run: | - if [ ! -f pr_number.txt ] || [ ! -f pr_comment.md ]; then - echo "No comment artifact found, skipping." + if [ ! -f pr_number.txt ]; then + echo "No pr_number.txt in artifact, skipping." exit 0 fi @@ -43,4 +50,17 @@ jobs: exit 1 fi - gh pr comment "$PR_NUMBER" --body-file pr_comment.md + # Delete prior comments matching the marker (from check_profiles.yml) or the legacy heading. + OLD_IDS=$(gh api --paginate "repos/${GH_REPO}/issues/${PR_NUMBER}/comments" \ + --jq '.[] | select(.user.login == "github-actions[bot]") | select((.body | startswith("")) or (.body | startswith("## :x: Profile Validation Errors"))) | .id') + for comment_id in $OLD_IDS; do + echo "Deleting outdated profile-validation comment ${comment_id}" + gh api -X DELETE "repos/${GH_REPO}/issues/comments/${comment_id}" || true + done + + # Post a new comment only when validation failed (pr_comment.md present). + if [ -f pr_comment.md ]; then + gh pr comment "$PR_NUMBER" --body-file pr_comment.md + else + echo "Validation succeeded; cleaned up prior comments without posting." + fi From 417bea04df77dcda82d9a823c6d9203cf5244ccb Mon Sep 17 00:00:00 2001 From: DeathKhan Date: Thu, 28 May 2026 06:45:03 -0500 Subject: [PATCH 02/18] fix(ElegooLink): pass printer SN to CC2 device panel URL (#13878) * fix(ElegooLink): pass printer SN to CC2 device panel URL The CC2 panel subscribes to MQTT topics keyed by the printer serial number. Without sn= in the URL it uses a wrong hardcoded fallback SN, subscribes to the wrong topics, and shows Offline permanently even though the printer is reachable. - Cache the SN in elegoo_cc2_test() (already fetches it, was discarding it) - Look up cache in get_print_host_webui(); fall back to a short LAN HTTP call on first use before the test has run - Append sn= to the panel URL - Clear the wrong hardcoded fallback SN/IP from the panel bundle - Add a small synchronous boot script to the panel that fetches the SN from the printer before the bundle reads URLSearchParams, as a fallback for unpatched binaries * fix(ElegooLink): persist CC2 serial number in AppConfig dev_sn section Store the printer SN under [dev_sn] keyed by normalized print_host after a successful connection test or system/info fetch. Reuse it on later sessions before hitting the network, matching how access_code is keyed by dev_id for other LAN printers. * fix(ElegooLink): answer get_sn IPC instantly from dev_sn cache The CC2 panel always calls get_sn with a 10s timeout. Remove the HTTP fallback from get_sn() and resolve IPC from dev_sn/memory only so Device tab load is not blocked after sn= is already in the URL. * fix(ElegooLink): skip get_sn IPC when URL already has sn The CC2 device panel calls get_sn with a 10s timeout on every MQTT connect even when Orca passes sn= in the query string. Use the URL serial immediately and only fall back to IPC when it is missing. * refactor(ElegooLink): resolve CC2 SN via PrintHost::get_sn in GUI Drop the ElegooLink.hpp include from PrinterWebViewHandler; the webview IPC handler uses the existing PrintHost virtual instead. Keep CC2 serial lookup helpers file-local in ElegooLink.cpp and share them between get_sn() and get_print_host_webui(). * chore: drop redundant include in PrinterWebViewHandler --------- Co-authored-by: SoftFever --- .../elegoolink/web/lan_service_web/index.html | 24 +++- src/slic3r/GUI/PrinterWebViewHandler.cpp | 34 ++--- src/slic3r/Utils/ElegooLink.cpp | 129 ++++++++++++++---- 3 files changed, 130 insertions(+), 57 deletions(-) diff --git a/resources/plugins/elegoolink/web/lan_service_web/index.html b/resources/plugins/elegoolink/web/lan_service_web/index.html index e552aa1e8e..b3b8242ddf 100644 --- a/resources/plugins/elegoolink/web/lan_service_web/index.html +++ b/resources/plugins/elegoolink/web/lan_service_web/index.html @@ -1,4 +1,22 @@ -ELEGOO-Create The FutureELEGOO-Create The Future
\ No newline at end of file + `),this._encryptionMode=e,this._encryptionSecret=t,n&&(this._encryptionSalt=_d(n))}async renewToken(e){if(pi(e,"token",1,2047),!this._key||!this._joinInfo)throw new xe(Q.INVALID_OPERATION,"renewToken should not be called before user join");const t=this._key;this._key=e,this._joinInfo&&(this._joinInfo.token=e);const n=await this._renewTokenMutex.lock();try{if(he("USE_NEW_TOKEN")){D.debug("[".concat(this._clientId,"] start renew token with ticket from unilbs"));const r=await jBe(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||jr);D.debug("[".concat(this._clientId,"] get ticket from unilbs success")),await this._gateway.renewToken({token:e,ticket:r})}else D.debug("[".concat(this._clientId,"] start renew token without ticket")),await this._gateway.renewToken({token:e});D.debug("[".concat(this._clientId,"] renewToken success"))}catch(r){throw this._key=t,this._joinInfo.token=t,D.error("[".concat(this._clientId,"] renewToken failed"),r.toString()),r}finally{n()}}enableAudioVolumeIndicator(){this._audioVolumeIndicationInterval?D.warning("you have already enabled audio volume indicator!"):this._audioVolumeIndicationInterval=window.setInterval((()=>{const e=this._p2pChannel.getAudioLevels();this.safeEmit($t.VOLUME_INDICATOR,e)}),he("AUDIO_VOLUME_INDICATION_INTERVAL")||2e3)}getRTCStats(){const e=this._statsCollector.getRTCStats(),t=this._gateway.getInChannelInfo();return e.Duration=Math.round(t.duration/1e3),e}async startLiveStreaming(e,t){if(!t){if(this.codec!=="h264")throw new xe(Q.LIVE_STREAMING_INVALID_RAW_STREAM,"raw streaming is only support h264");if(!this._p2pChannel.hasLocalMedia())throw new xe(Q.LIVE_STREAMING_INVALID_RAW_STREAM,"can not find stream to raw streaming")}if(this._liveRawStreamingClient&&this._liveRawStreamingClient.hasUrl(e)||this._liveTranscodeStreamingClient&&this._liveTranscodeStreamingClient.hasUrl(e))throw new xe(Q.LIVE_STREAMING_TASK_CONFLICT);const n=t?au.TRANSCODE:au.RAW;return this._createLiveStreamingClient(n).startLiveStreamingTask(e,n)}setLiveTranscoding(e){return this._createLiveStreamingClient(au.TRANSCODE).setTranscodingConfig(e)}async stopLiveStreaming(e){const t=[this._liveRawStreamingClient,this._liveTranscodeStreamingClient].filter((n=>n&&n.hasUrl(e)));if(!t.length)throw new xe(Q.INVALID_PARAMS,"can not find live streaming url to stop");await ot.all(t.map((n=>n&&n.stopLiveStreamingTask(e))))}async startChannelMediaRelay(e){IU(e),await this._createChannelMediaRelayClient().startChannelMediaRelay(e)}async updateChannelMediaRelay(e){IU(e),await this._createChannelMediaRelayClient().updateChannelMediaRelay(e)}async stopChannelMediaRelay(){await this._createChannelMediaRelayClient().stopChannelMediaRelay(),this._statsCollector.onStatsChanged&&(this._statsCollector.onStatsChanged=void 0)}async sendStreamMessage(e){var t;let n=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!this._joinInfo)throw new xe(Q.INVALID_OPERATION,"can not send data stream, not joined");if((typeof e=="string"||e instanceof Uint8Array)&&(e={payload:e}),typeof e.payload=="string"){const i=new TextEncoder;e.payload=i.encode(e.payload)}let r=!1;if(this._encryptDataStream&&this._encryptDataStreamIv&&this._encryptDataStreamKey&&window.crypto.subtle&<(t=["aes-128-gcm2","aes-256-gcm2"]).call(t,this._encryptionMode)&&(r=!0,e.payload=await(async function(i,o,s){var a;const c=vc(a=Array.from(s)).call(a,((g,m)=>g+m),0),l={serverTs:0,seq:rNe++,length:s.length,checkSum:c},u=new Uint8Array(hM(c,2)),d=new ArrayBuffer(Yf),f=new DataView(d);f.setUint32(0,l.serverTs),f.setUint16(4,l.seq),f.setUint16(6,l.length),f.setUint16(8,l.checkSum);const h=16-s.length%16;s=lM(s,new Uint8Array(h));const p=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:i,tagLength:mM,additionalData:u},o,s);return lM(new Uint8Array(d),new Uint8Array(p))})(this._encryptDataStreamIv,this._encryptDataStreamKey,e.payload)),new Blob([e.payload]).size>1024)throw new xe(Q.INVALID_PARAMS,r?"encrypted stream message out of range.":"stream message out of range.");return this._gateway.signal.request(Dt.DATA_STREAM,{payload:_d(e.payload),syncWithAudio:e.syncWithAudio,sendTs:Date.now()-dFe},!n)}sendMetadata(e){if(!this._joinInfo)throw new xe(Q.INVALID_OPERATION,"can not send metadata, not joined");if(new Blob([e]).size>1024)throw new xe(Q.METADATA_OUT_OF_RANGE);return this._gateway.signal.request(Dt.SEND_METADATA,{session_id:this._joinInfo.sid,metadata:_d(e)})}async sendCustomReportMessage(e){if(Array.isArray(e)||(e=[e]),e.forEach(oNe),!this._joinInfo)throw new xe(Q.INVALID_OPERATION,"can not send custom report, not joined");await mt.sendCustomReportMessage(this._joinInfo.sid,e)}getLocalAudioStats(){return this._statsCollector.getLocalAudioTrackStats()}getRemoteAudioStats(){return this._statsCollector.getRemoteAudioTrackStats()}getLocalVideoStats(){return this._statsCollector.getLocalVideoTrackStats()}getRemoteVideoStats(){return this._statsCollector.getRemoteVideoTrackStats()}getRemoteNetworkQuality(){return this._statsCollector.getRemoteNetworkQualityStats()}async pickSVCLayer(e,t){Kr(t.spatialLayer,"spatialLayer",[0,1,2,3]),Kr(t.temporalLayer,"temporalLayer",[0,1,2,3]);try{await this._gateway.pickSVCLayer(e,t)}catch(n){throw D.error("[".concat(this._clientId,"] pick SVC layer failed"),n.toString()),n}}async setRTMConfig(e){const{apRTM:t=!1,rtmFlag:n}=e;if(nu(t,"apRTM"),Ln(n,"rtmFlag",0),this._rtmConfig.apRTM=t,this._rtmConfig.rtmFlag=n,D.debug("[".concat(this._clientId,"] setRTMconfig ").concat(JSON.stringify(e)," in ").concat(this.connectionState," state")),(this.connectionState==="CONNECTED"||this.connectionState==="RECONNECTING")&&this._joinInfo)return this._joinInfo.apRTM=t,this._joinInfo.rtmFlag=n,this._gateway.setRTM2Flag(n)}_reset(){if(D.debug("[".concat(this._clientId,"] reset client")),this._axiosCancelSource.cancel(),this._axiosCancelSource=Lo.CancelToken.source(),this._streamFallbackTypeCacheMap=new Map,this._remoteStreamTypeCacheMap=new Map,this._configDistribute.stopGetConfigDistribute(),this._joinInfo&&N$(this._joinInfo),this._joinInfo=void 0,this._proxyServer=void 0,this._defaultStreamFallbackType=void 0,this._sessionId=null,this.store.sessionId=null,this._statsCollector.reset(),this._key=void 0,this._appId=void 0,this._uid=void 0,this.store.uid=void 0,this._channelName=void 0,this._encryptionMode="none",this._encryptionSecret=null,this._encryptionSalt=null,this._encryptDataStreamKey=null,this._encryptDataStreamIv=null,this._pendingPublishedUsers=[],this._users.forEach((e=>{e._audioTrack&&e._audioTrack._destroy(),e._videoTrack&&e._videoTrack._destroy(),e._dataChannels&&(e._dataChannels.forEach((t=>t._close())),e._dataChannels.length=0)})),this._users=[],this._audioVolumeIndicationInterval&&(window.clearInterval(this._audioVolumeIndicationInterval),this._audioVolumeIndicationInterval=void 0),this._cloudProxyServerMode==="fallback"&&(this._cloudProxyServerMode="disabled",this.store.cloudProxyServerMode="disabled"),this._p2pChannel.reset(),this._publishMutex=new Hi("client-publish"),this._subscribeMutex=new Hi("client-subscribe"),this._networkQualityInterval&&(window.clearInterval(this._networkQualityInterval),this._networkQualityInterval=void 0),this._liveRawStreamingClient&&(this._liveRawStreamingClient.terminate(),this._liveRawStreamingClient.removeAllListeners(),this._liveRawStreamingClient=void 0),this._liveTranscodeStreamingClient&&(this._liveTranscodeStreamingClient.terminate(),this._liveTranscodeStreamingClient.removeAllListeners(),this._liveTranscodeStreamingClient=void 0),this._channelMediaRelayClient&&(this._channelMediaRelayClient.dispose(),this._channelMediaRelayClient=void 0),this._inspect)try{this._inspect.close(),this._inspect=void 0}catch{}if(this._moderation)try{this.setImageModeration(!1)}catch{}}_startSession(e,t){var n;const r=e||Ph();e?D.debug("[".concat(this._clientId,"] new Session ").concat(r)):D.debug("[".concat(this._clientId,"] renewSession ").concat(this._sessionId," => ").concat(r));const i=e?"":this._sessionId||"";this._sessionId=r,this.store.sessionId=r;const o={lts:new Date().getTime(),mode:this.mode,buildFormat:2,stringUid:(t==null?void 0:t.stringUid)||((n=this._joinInfo)===null||n===void 0?void 0:n.stringUid),channelProfile:this.mode==="live"?1:0,channelMode:0,isABTestSuccess:Number(this._configDistribute.isSuccess),lsid:i,clientRole:this.role==="audience"?2:1};mt.sessionInit(this._sessionId,$a({cname:t.channel,appid:t.appId},o)),this._joinInfo&&(this._joinInfo.sid=r),this._gateway.joinInfo&&(this._gateway.joinInfo.sid=r)}async _publishHighStream(e){if(!this._joinInfo||this._uid===void 0)throw new xe(Q.INVALID_OPERATION,"Can't publish stream, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new xe(Q.INVALID_OPERATION,"can not publish stream in ".concat(this.connectionState," state"));if(this._turnServer.mode==="auto"&&he("FORCE_TURN")&&!he("TURN_ENABLE_TCP")&&!he("TURN_ENABLE_UDP"))throw new xe(Q.UNEXPECTED_ERROR,"force TURN With No TURN Configuration");D.debug("[".concat(this._clientId,"] publish high stream"));try{const n=await this._p2pChannel.publish(e,this._isDualStreamEnabled,this._lowStreamParameter);if(this._p2pChannel instanceof rs){const r=(await n.next()).value;if(r){try{await this._gateway.sendExtensionMessage(Cr.PUBLISH,r,!0)}catch(i){throw n.throw(i),i}await n.next()}this._p2pChannel.reportPublishEvent(!0,null)}else{const r=(await n.next()).value;if(r){var t;let i;try{i=await this._gateway.publish(this._uid,r,!0)}catch(o){if(o.code!==Q.DISCONNECT_P2P)throw n.throw(o),o}await n.next(((t=i)===null||t===void 0?void 0:t.ortc)||[])}this._p2pChannel.reportPublishEvent(!0,null);for(const i of e)i instanceof Kn&&i._encoderConfig&&this._gateway.setVideoProfile(i._encoderConfig),!i.muted&&i.enabled||await this._p2pChannel.muteLocalTrack(i)}}catch(n){if(this._p2pChannel.reportPublishEvent(!1,n==null?void 0:n.code,e),(n==null?void 0:n.code)===Q.WS_ABORT)return;throw n}}async _publishLowStream(){if(!this._joinInfo||this._uid===void 0)throw new xe(Q.INVALID_OPERATION,"Can't publish stream, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new xe(Q.INVALID_OPERATION,"can not publish stream in ".concat(this.connectionState," state"));D.debug("[".concat(this._clientId,"] publish low stream"));const e=this._configDistribute.getLowStreamConfigDistribute();e&&e.bitrate&&(this._lowStreamParameter||(this._lowStreamParameter={width:160,height:120,framerate:15,bitrate:50}),this._lowStreamParameter&&this._lowStreamParameter.bitrate&&e.bitrate{if(!this._joinInfo||!this._appId)return new xe(Q.INVALID_OPERATION,"can not create live streaming client, please join channel first").throw();const n=(r={joinInfo:this._joinInfo,appId:this._appId,websocketRetryConfig:this._config.websocketRetryConfig,httpRetryConfig:this._config.httpRetryConfig},G1("LiveStreaming").create(r));var r;return n.onLiveStreamError=(i,o)=>{mt.reportApiInvoke(this._sessionId,{name:Zr.ON_LIVE_STREAM_ERROR,options:[i,o],tag:vr.TRACER}).onSuccess(),this.safeEmit($t.LIVE_STREAMING_ERROR,i,o)},n.onLiveStreamWarning=(i,o)=>{mt.reportApiInvoke(this._sessionId,{name:Zr.ON_LIVE_STREAM_WARNING,options:[i,o],tag:vr.TRACER}).onSuccess(),this.safeEmit($t.LIVE_STREAMING_WARNING,i,o)},n.on(XA.REQUEST_WORKER_MANAGER_LIST,((i,o,s)=>{if(!this._joinInfo)return s(new xe(Q.INVALID_OPERATION,"can not find join info to get worker manager"));(async function(a,c,l,u){const d=he("UAP_AP").slice(0,he("AJAX_REQUEST_CONCURRENT")).map((f=>c.proxyServer?"https://".concat(c.proxyServer,"/ap/?url=").concat(f+"/api/v1?action=uap"):"https://".concat(f,"/api/v1?action=uap")));return await LBe(d,a,c,l,u)})(i,this._joinInfo,this._axiosCancelSource.token,jr).then(o).catch(s)})),n};return e===au.RAW?(this._liveRawStreamingClient=this._liveRawStreamingClient||t(),this._liveRawStreamingClient):(this._liveTranscodeStreamingClient=this._liveTranscodeStreamingClient||t(),this._liveTranscodeStreamingClient)}_createChannelMediaRelayClient(){if(!this._joinInfo)return new xe(Q.INVALID_OPERATION,"can not create channel media relay client, please join channel first").throw();if(!this._channelMediaRelayClient){const{sendResolutionWidth:t,sendResolutionHeight:n}=this.getLocalVideoStats(),r=(e={joinInfo:this._joinInfo,clientId:this._clientId,websocketRetryConfig:this._config.websocketRetryConfig,httpRetryConfig:this._config.httpRetryConfig,resolution:{width:t,height:n}},G1("ChannelMediaRelay").create(e));r.on("state",(i=>{i===zo.RELAY_STATE_FAILURE&&r&&r.dispose(),this.safeEmit($t.CHANNEL_MEDIA_RELAY_STATE,i)})),r.on("event",(i=>{this.safeEmit($t.CHANNEL_MEDIA_RELAY_EVENT,i)})),this._channelMediaRelayClient=r,this._statsCollector.onStatsChanged=(i,o)=>{var s;i==="resolution"&&((s=this._channelMediaRelayClient)===null||s===void 0||s.setVideoProfile(o))}}var e;return this._channelMediaRelayClient}_handleUpdateDataChannel(e,t){const{added:n,deleted:r}=e,i=[];if(t){const o=[];this._users.forEach((s=>{s._dataChannels.forEach((a=>{n.every((c=>c.uid!==s._uintid||c.stream_id!==a.id))&&o.push({uid:s._uintid,stream_id:a.id,ordered:a.ordered,max_retrans_times:a.maxRetransmits,metadata:a.metadata})}))})),o.length>0&&this._handleUpdateDataChannel({added:[],deleted:o})}Array.isArray(n)&&n.length>0&&n.forEach((o=>{const{uid:s,stream_id:a,ordered:c,max_retrans_times:l,metadata:u}=o,d=this._users.find((f=>f._uintid===s));if(!d)return void D.error("[".concat(this._clientId,"] can not find target user!(on_add_data_channel)"));if(D.debug("[".concat(this._clientId,"] data_channel added with uid ").concat(s)),lt(i).call(i,d)||i.push(d),d._uintid||(d._uintid=s),d._dataChannels.findIndex((f=>f.id===o.stream_id))===-1){const f={id:a,ordered:!!c,maxRetransmits:l,metadata:u},h=(function(p){return UU(p,!0)})(f);d._dataChannels.push(h),D.info("[".concat(this._clientId,"] remote user ").concat(d.uid," published datachannel")),t||this.safeEmit($t.USER_PUBLISHED,d,"datachannel",f)}this._p2pChannel.hasPendingRemoteDataChannel(d,o.stream_id)&&(D.debug("[".concat(this._clientId,"] resubscribe datachannel for user ").concat(d.uid," after reconnect.")),this._subscribeDataChannel(d,o.stream_id).catch((f=>{D.error("[".concat(this._clientId,"] resubscribe datachannel error"),f.toString())})))})),t&&(this.safeEmit($t.PUBLISHED_USER_LIST,this._pendingPublishedUsers),this._pendingPublishedUsers=[]),Array.isArray(r)&&r.length>0&&r.forEach((o=>{const{uid:s,stream_id:a}=o,c=this._users.find((u=>u._uintid===s));if(!c)return void D.error("[".concat(this._clientId,"] can not find target user!(on_delete_data_channel)"));const l=c._dataChannels.find((u=>u.id===o.stream_id));l&&(D.debug("[".concat(this._clientId,"] data_stream delete with uid ").concat(s)),this._p2pChannel.unsubscribeDataChannel(c,[l]).then((u=>{if(c._dataChannels=c._dataChannels.filter((d=>d!==l)),u)return this._gateway.unsubscribeDataChannel(u,c.uid)})),D.info("[".concat(this._clientId,"] remote user ").concat(s," unpublished datachannel ,id:").concat(l.id)),this.safeEmit($t.USER_UNPUBLISHED,c,"datachannel",l._config))}))}_handleRemoveDataChannels(e){const t=this._users.find((n=>n.uid===e.uid));if(t){if(t._dataChannels!==void 0&&t._dataChannels.length>0){D.debug("[".concat(this._clientId,"] datachannel removed with uid ").concat(e.uid));const n=()=>{D.info("[".concat(this._clientId,"] remote user ").concat(t.uid," unpublished datachannel")),t._dataChannels.forEach((r=>{this.safeEmit($t.USER_UNPUBLISHED,t,"datachannel",r._config)}))};this._p2pChannel.unsubscribeDataChannel(t,t._dataChannels).then((r=>{if(r)return this._gateway.unsubscribeDataChannel(r,t.uid)})),n()}}else D.warning("[".concat(this._clientId,"] can not find target user!(on_remove_datachannel)"))}_handleGatewayEvents(){this._gateway.on(Ci.DISCONNECT_P2P,(async()=>{await this._p2pChannel.disconnectForReconnect()})),this._gateway.on(Ci.CONNECTION_STATE_CHANGE,((e,t,n)=>{var r;if(n===Tn.FALLBACK)return;const i=()=>{this.safeEmit($t.CONNECTION_STATE_CHANGE,e,t,n)};if(mt.reportApiInvoke(this._sessionId||((r=this._gateway.joinInfo)===null||r===void 0?void 0:r.sid)||null,{name:Zr.CONNECTION_STATE_CHANGE,options:[e,t,n],tag:vr.TRACER}).onSuccess(JSON.stringify({cur:e,prev:t,reason:n})),D.info("[".concat(this._clientId,"] connection state change: ").concat(t," -> ").concat(e)),e==="DISCONNECTED")return this._reset(),void i();if(e==="RECONNECTING")this._users.forEach((s=>{s._trust_in_room_=!1,s._trust_audio_enabled_state_=!1,s._trust_video_enabled_state_=!1,s._trust_audio_mute_state_=!1,s._trust_video_mute_state_=!1,s._trust_audio_stream_added_state_=!1,s._trust_video_stream_added_state_=!1,s._is_pre_created||(s._audio_pre_subscribed||(s._audioSSRC=void 0,s._audioOrtc=void 0),s._video_pre_subscribed||(s._videoSSRC=void 0,s._videoOrtc=void 0,s._rtxSsrcId=void 0),s._cname=void 0)})),this._userOfflineTimeout&&window.clearTimeout(this._userOfflineTimeout),this._streamRemovedTimeout&&window.clearTimeout(this._streamRemovedTimeout),this._userOfflineTimeout=void 0,this._streamRemovedTimeout=void 0;else if(e==="CONNECTED"){var o;this._streamFallbackTypeCacheMap.forEach(((s,a)=>{this._gateway.setStreamFallbackOption(a,s).catch((c=>{D.warning("[".concat(this._clientId,"] auto set stream fallback option failed"),c)}))})),this._remoteStreamTypeCacheMap.forEach(((s,a)=>{this._gateway.setRemoteVideoStreamType(a,s).catch((c=>{D.warning("[".concat(this._clientId,"] auto set remote stream type failed"),c)}))})),this._remoteDefaultVideoStreamType!==void 0&&((o=this._joinInfo)===null||o===void 0?void 0:o.defaultVideoStream)===void 0&&this.setRemoteDefaultVideoStreamType(this._remoteDefaultVideoStreamType).then((()=>{D.debug("[".concat(this._clientId,"] setRemoteDefaultVideoStreamType after gateway connected"))})).catch((s=>{D.error("[".concat(this._clientId,"] setRemoteDefaultVideoStreamType after gateway failed, ").concat(s))})),this.store.useP2P||(this._p2pChannel.republish(),this._userOfflineTimeout=window.setTimeout((()=>{this.connectionState==="CONNECTED"&&(this._userOfflineTimeout=void 0,this._users.filter((s=>!s._trust_in_room_)).forEach((s=>{D.debug("[".concat(this._clientId,"] user offline timeout, emit user offline ").concat(s.uid)),this._handleUserOffline({uid:s.uid})})))}),3e3),this._streamRemovedTimeout=window.setTimeout((()=>{this.connectionState==="CONNECTED"&&(this._streamRemovedTimeout=void 0,this._users.forEach((s=>{s._trust_audio_mute_state_||(D.debug("[".concat(this._clientId,"] auto dispatch audio unmute event ").concat(s.uid)),this._handleMuteStream(s.uid,vt.AUDIO,!1)),s._trust_video_mute_state_||(D.debug("[".concat(this._clientId,"] auto dispatch video unmute event ").concat(s.uid)),this._handleMuteStream(s.uid,vt.VIDEO,!1)),s._trust_audio_enabled_state_||(D.debug("[".concat(this._clientId,"] auto dispatch enable local audio ").concat(s.uid)),this._handleSetStreamLocalEnable("audio",s.uid,!0)),s._trust_video_enabled_state_||(D.debug("[".concat(this._clientId,"] auto dispatch enable local video ").concat(s.uid)),this._handleSetStreamLocalEnable("video",s.uid,!0)),s._trust_video_stream_added_state_||(D.debug("[".concat(this._clientId,"] auto dispatch reset video stream added ").concat(s.uid)),this._handleResetAddStream(s,"video")),s._trust_audio_stream_added_state_||(D.debug("[".concat(this._clientId,"] auto dispatch reset audio stream added ").concat(s.uid)),this._handleResetAddStream(s,"audio")),s._video_added_||s._audio_added_||(D.debug("[".concat(this._clientId,"] auto dispatch stream remove ").concat(s.uid)),this._handleRemoveStream({uid:s.uid,uint_id:s._uintid}))})))}),1e3))}i()})),this._gateway.on(Ci.REQUEST_NEW_GATEWAY_LIST,(async(e,t)=>{if(!this._joinInfo)return t(new xe(Q.UNEXPECTED_ERROR,"can not recover, no join info"));try{let n;const r=await VU($a($a({},this._joinInfo),{},{uid:this._joinInfo.uid,stringUid:void 0}));r?(n=r.ap,GU(r),this._joinInfo.preload=!0):(n=await aC(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||jr,this.store),this._joinInfo.preload=!1),this._joinInfo&&(this._joinInfo.apResponse=n.gatewayInfo.res,this._joinInfo.gatewayAddrs=n.gatewayInfo.gatewayAddrs,this._joinInfo.uni_lbs_ip=n.gatewayInfo.uni_lbs_ip);const i=[];n.gatewayInfo.gatewayAddrs.forEach((o=>{let{address:s}=o;const[a,c]=s.split(":");this._joinInfo&&this._joinInfo.proxyServer?i.push({proxy:this._joinInfo.proxyServer,host:a,port:c}):i.push({host:a,port:c})})),e(i)}catch(n){t(n)}})),this._gateway.on(Ci.NETWORK_QUALITY,(e=>{this._networkQualitySensitivity==="normal"&&this.safeEmit($t.NETWORK_QUALITY,e)})),this._gateway.on(Ci.STREAM_TYPE_CHANGE,((e,t)=>{this.safeEmit($t.STREAM_TYPE_CHANGED,e,t),mt.reportApiInvoke(this._sessionId,{name:Zr.STREAM_TYPE_CHANGE,options:[e,t],tag:vr.TRACER}).onSuccess(JSON.stringify({uid:e,streamType:t}))})),this._gateway.on(Ci.IS_P2P_DISCONNECTED,(e=>{this._p2pChannel.isP2PDisconnected()?e(!0):this._p2pChannel.hasLocalMedia()||this._p2pChannel.hasRemoteMedia()?e(!1):e(!0)})),this._gateway.on(Ci.REQUEST_P2P_CONNECTION_PARAMS,(async(e,t,n)=>{try{let r=await this._p2pChannel.getEstablishParams();he("ENABLE_PREALLOC_PC")&&r||(r=await this._p2pChannel.startP2PConnection(e)),t(r)}catch(r){n(r)}})),this._gateway.on(Ci.JOIN_RESPONSE,((e,t)=>{if(this.store.useP2P)return;const n=jF(e.ortc,t,e.attributes.userAttributes.preSubSsrcs);this._p2pChannel.connect(n)})),this._gateway.on(Ci.PRE_CONNECT_PC,(async e=>{const{candidates:t,fingerprint:n}=e;if(this._joinInfo&&t.length>0&&!this._p2pChannel.isPlanB){var r;await this._p2pChannel.startP2PConnection({turnServer:this._joinInfo.turnServer});const{cert:i,cid:o}=this._joinInfo.apResponse;await this._p2pChannel.connect({iceParameters:{iceUfrag:"".concat(o,"_").concat(i),icePwd:"".concat(o,"_").concat(i)},dtlsParameters:{fingerprints:[{hashFunction:"sha-256",fingerprint:(r=he("FINGERPRINT"))!==null&&r!==void 0?r:n}]},candidates:t,rtpCapabilities:{send:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]},recv:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]}},setup:"active",cname:"o/i14u9pJrxRKAsu",preallocation:!0})}}))}_handleGatewaySignalEvents(){this._gateway.signal.on(Kt.ON_USER_ONLINE,this._handleUserOnline),this._gateway.signal.on(Kt.ON_USER_OFFLINE,this._handleUserOffline),this._gateway.signal.on(Kt.ON_ADD_AUDIO_STREAM,(e=>this._handleAddAudioOrVideoStream("audio",e.uid,e.ssrcId,e.cname,e.uint_id,e.ortc))),this._gateway.signal.on(Kt.ON_ADD_VIDEO_STREAM,(e=>this._handleAddAudioOrVideoStream("video",e.uid,e.ssrcId,e.cname,e.uint_id,e.ortc,e.rtxSsrcId))),this._gateway.signal.on(Kt.ON_REMOTE_DATASTREAM_UPDATE,(e=>{this._handleUpdateDataChannel(e)})),this._gateway.signal.on(Kt.ON_REMOTE_FULL_DATASTREAM_INFO,(e=>{this._handleUpdateDataChannel({added:e.datastreams||[],deleted:[]},!0)})),this._gateway.signal.on(Kt.ON_REMOVE_STREAM,this._handleRemoveStream),this._gateway.signal.on(Kt.ON_P2P_LOST,this._handleP2PLost),this._gateway.signal.on(Kt.MUTE_AUDIO,(e=>this._handleMuteStream(e.uid,vt.AUDIO,!0))),this._gateway.signal.on(Kt.UNMUTE_AUDIO,(e=>this._handleMuteStream(e.uid,vt.AUDIO,!1))),this._gateway.signal.on(Kt.MUTE_VIDEO,(e=>this._handleMuteStream(e.uid,vt.VIDEO,!0))),this._gateway.signal.on(Kt.UNMUTE_VIDEO,(e=>this._handleMuteStream(e.uid,vt.VIDEO,!1))),this._gateway.signal.on(Kt.RECEIVE_METADATA,(e=>{const t=H0(e.metadata);this.safeEmit($t.RECEIVE_METADATA,e.uid,t)})),this._gateway.signal.on(Kt.ON_DATA_STREAM,(async e=>{var t;if(!e)return;let n=H0(e.payload);if(this._encryptDataStream&&this._encryptDataStreamIv&&this._encryptDataStreamKey&&window.crypto.subtle&<(t=["aes-128-gcm2","aes-256-gcm2"]).call(t,this._encryptionMode)){if(e.payload.lengtha.uid===e.uid)),s=i==null?void 0:i.audioRecv.find((a=>a.ssrc===(o==null?void 0:o._audioSSRC)));r=s==null?void 0:s.jitterBufferMs}r==null&&(r=0),hFe($a($a({},e),{},{payload:n}),r,{id:this._clientId,onStreamMessage:typeof this.onStreamMessage=="function"?this.onStreamMessage.bind(this):void 0,safeEmit:this.safeEmit.bind(this)})})),this._gateway.signal.on(Kt.ON_CRYPT_ERROR,(()=>{Fd((()=>{D.warning("[".concat(this._clientId,"] on crypt error")),this.safeEmit($t.CRYPT_ERROR)}),this._sessionId)})),this._gateway.signal.on(Kt.ON_TOKEN_PRIVILEGE_WILL_EXPIRE,this._handleTokenWillExpire),this._gateway.signal.on(Kt.ON_TOKEN_PRIVILEGE_DID_EXPIRE,(()=>{D.warning("[".concat(this._clientId,"] received message onTokenPrivilegeDidExpire, please get new token and join again")),this._gateway.leave(!0,Tn.TOKEN_EXPIRE),this.safeEmit($t.ON_TOKEN_PRIVILEGE_DID_EXPIRE),this._reset()})),this._gateway.signal.on(Kt.ON_STREAM_FALLBACK_UPDATE,(e=>{D.debug("[".concat(this._clientId,"] stream fallback peerId: ").concat(e.stream_id,", attr: ").concat(e.stream_type)),this.safeEmit($t.STREAM_FALLBACK,e.stream_id,e.stream_type===1?"fallback":"recover")})),this._gateway.signal.on(Kt.ON_PUBLISH_STREAM,(e=>{this.uid===this._uid&&(this._p2pChannel.reportPublishEvent(!0,null,void 0,!1,JSON.stringify({proxy:e.proxy})),D.info("[".concat(this._clientId,"] on publish stream, ").concat(JSON.stringify(e))))})),this._gateway.signal.on(Kt.ENABLE_LOCAL_VIDEO,(e=>{this._handleSetStreamLocalEnable("video",e.uid,!0)})),this._gateway.signal.on(Kt.DISABLE_LOCAL_VIDEO,(e=>{this._handleSetStreamLocalEnable("video",e.uid,!1)})),this._gateway.signal.on(Nt.REQUEST_TIMEOUT,((e,t)=>{if(this._joinInfo)switch(e){case Dt.PUBLISH:{if(!t)return;const i=t.ortc;if(i){var n,r;const o=i.some((c=>{let{stream_type:l}=c;return l===Sn.Audio})),s=i.some((c=>{let{stream_type:l}=c;return l!==Sn.Audio})),a=i.some((c=>{let{stream_type:l}=c;return l===Sn.Screen||l===Sn.ScreenLow}));t.state==="offer"&&mt.publish(this._joinInfo.sid,{eventElapse:ji.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:!1,ec:Q.TIMEOUT,audio:o,video:s,p2pid:t.p2p_id,publishRequestid:this.store.pubId,screenshare:a,audioName:o?(n=i.find((c=>{let{stream_type:l}=c;return l===Sn.Audio})))===null||n===void 0||(n=n.ssrcs[0])===null||n===void 0?void 0:n.ssrcId.toString():void 0,videoName:s?(r=i.find((c=>{let{stream_type:l}=c;return l!==Sn.Audio})))===null||r===void 0||(r=r.ssrcs[0])===null||r===void 0?void 0:r.ssrcId.toString():void 0})}break}case Dt.SUBSCRIBE:t&&mt.subscribe(this._joinInfo.sid,{succ:!1,ec:Q.TIMEOUT,audio:t.stream_type===vt.AUDIO,video:t.stream_type===vt.VIDEO,peerid:t.stream_id,subscribeRequestid:t.ssrcId,p2pid:this.store.p2pId,eventElapse:ji.measureFromSubscribeStart(this.store.clientId,t.ssrcId),preSsrc:this._p2pChannel.isPreSubScribe(t.ssrcId)})}})),this._gateway.signal.on(Kt.ON_P2P_OK,(e=>{this.uid,this._uid})),this._gateway.signal.on(Kt.ON_PUBLISHED_USER_LIST,(e=>{if(e==null||!e.users)return;he("BLOCK_LOCAL_CLIENT")&&(e.users=e.users.filter((r=>!f0(r.string_id||r.stream_id,this.channelName))));const t=[],n=[];for(const r of e.users){let i=this._users.find((u=>u._uintid===r.stream_id));i?i._trust_in_room_=!0:(i=new md(r.string_id||r.stream_id,r.stream_id),this._users.push(i),this.getListeners($t.PUBLISHED_USER_LIST).length===0&&(D.debug("[".concat(this._clientId,"] user online"),r.stream_id),this.safeEmit($t.USER_JOINED,i)));const o=ti.Audio&r.stream_type,s=(ti.Video|ti.LwoVideo)&r.stream_type,a=(65280&r.stream_type)!=0,c=o&&i.hasAudio,l=s&&i.hasVideo;s&&(i._trust_video_stream_added_state_=!0,i._video_added_=!0,i._videoSSRC=r.video_ssrc,i._rtxSsrcId=r.video_rtx),o&&(i._trust_audio_stream_added_state_=!0,i._audio_added_=!0,i._audioSSRC=r.audio_ssrc),o&&!c&&this.getListeners($t.PUBLISHED_USER_LIST).length===0&&(D.info("[".concat(this._clientId,"] remote user ").concat(i.uid," published audio")),this.safeEmit($t.USER_PUBLISHED,i,"audio")),s&&!l&&this.getListeners($t.PUBLISHED_USER_LIST).length===0&&(D.info("[".concat(this._clientId,"] remote user ").concat(i.uid," published video")),this.safeEmit($t.USER_PUBLISHED,i,"video")),(o&&!c||s&&!l||a)&&t.push(i),s&&this._p2pChannel.hasPendingRemoteMedia(i,"video")&&n.push({user:i,mediaType:"video"}),o&&this._p2pChannel.hasPendingRemoteMedia(i,"audio")&&n.push({user:i,mediaType:"audio"})}n.length>0&&(D.debug("[".concat(this._clientId,"] RE massSubscribe after reconnect ").concat(n.map((r=>"user: ".concat(r.user.uid,", mediaType: ").concat(r.mediaType))).join("; ")," ")),this.massSubscribe(n).catch((r=>{D.error("[".concat(this._clientId,"] mass resubscribe error"),r.toString())}))),this.getListeners($t.PUBLISHED_USER_LIST).length>0?he("ENABLE_DATASTREAM_2")?this._pendingPublishedUsers=t:(D.info("[".concat(this._clientId,"] client emit user-list event, users: ").concat(t.map((r=>r.uid)).join(", "))),this.safeEmit($t.PUBLISHED_USER_LIST,t)):D.info("[".concat(this._clientId,"] client not emit user-list event case there is no user-list listener, users: ").concat(t.map((r=>r.uid)).join(", ")))})),this._gateway.signal.on(Kt.ON_RTP_CAPABILITY_CHANGE,(e=>{const{video_codec:t}=e;this._p2pChannel instanceof w5&&this._p2pChannel.updateRemoteRTPCapabilities(t.map((n=>n.toLowerCase())).filter((n=>{var r;return lt(r=Object.keys(f6)).call(r,n)})))}))}_handleP2PEvents(){this._gateway.signal.on(Kt.ON_USER_OFFLINE,(()=>{this._p2pChannel.disconnectForReconnect()})),this._gateway.signal.on(Cr.PUBLISH,((e,t,n)=>{const{uid:r}=e;e.forEach((i=>{const{kind:o,ssrcs:s,mid:a,isMuted:c}=i;this._handleP2PAddAudioOrVideoStream(o,r,s[0].ssrcId,a);const l=this._users.find((u=>u.uid===r));return l&&this._p2pChannel instanceof rs?this._p2pChannel.mockSubscribe(l,o,s[0].ssrcId,a).then((()=>{t()})).catch(n):t(),this._handleMuteStream(r,o,!!c)}))})),this._gateway.signal.on(Cr.CALL,(async(e,t,n)=>{if(this._p2pChannel instanceof rs)try{var r;t(await this._p2pChannel.startP2P({turnServer:(r=this._joinInfo)===null||r===void 0?void 0:r.turnServer},e))}catch(i){n(i)}})),this._gateway.signal.on(Nt.P2P_CONNECTION,(async e=>{this._p2pChannel instanceof rs&&await this._p2pChannel.p2pConnect(e)})),this._gateway.signal.on(Cr.UNPUBLISH,(async(e,t,n)=>{if(this._p2pChannel instanceof rs){const{unpubMsg:r,uid:i}=e,o=this._users.find((s=>s.uid===i));if(!o)return D.warning("[".concat(this._clientId,"] can not find remote user, ignore mute event, uid: ").concat(i)),void t();try{r.forEach((async s=>{let{stream_type:a}=s;const c=a===Sn.Audio?vt.AUDIO:vt.VIDEO;await this._p2pChannel.unsubscribe(o,c),this._handleMuteStream(i,c,!0)})),t()}catch(s){n(s)}}})),this._gateway.signal.on(Cr.CONTROL,(async(e,t)=>{const{action:n}=e;switch(n){case Sd.MUTE_LOCAL_VIDEO:this._handleMuteStream(t,vt.VIDEO,!0);break;case Sd.MUTE_LOCAL_AUDIO:this._handleMuteStream(t,vt.AUDIO,!0);break;case Sd.UNMUTE_LOCAL_VIDEO:this._handleP2PAddAudioOrVideoStream("video",t),this._handleMuteStream(t,vt.VIDEO,!1);break;case Sd.UNMUTE_LOCAL_AUDIO:this._handleP2PAddAudioOrVideoStream("audio",t),this._handleMuteStream(t,vt.AUDIO,!1)}})),this._gateway.signal.on(Cr.RESTART_ICE,(async(e,t,n)=>{if(this._p2pChannel instanceof rs)try{const{direction:r,iceParameter:i}=e;r!==po.SEND_ONLY||i?t(await this._p2pChannel.restartICE(r,i)):(this._p2pChannel.handleDisconnect(r),t())}catch(r){n(r)}})),this._gateway.signal.on(Cr.CANDIDATE,(e=>{if(this._p2pChannel instanceof rs){const{candidate:t,direction:n}=e;this._p2pChannel.addRemoteCandidate(t,n)}})),this._p2pChannel.on(Ot.RequestP2PRestartICE,(async(e,t,n)=>{try{const{direction:r}=e;t(await this._gateway.sendExtensionMessage(Cr.RESTART_ICE,e,r===po.SEND_ONLY))}catch(r){n(r)}})),this._p2pChannel.on(Ot.LocalCandidate,(e=>{this._gateway.sendExtensionMessage(Cr.CANDIDATE,JSON.stringify(e),!0)})),this._p2pChannel.on(Ot.RequestP2PMuteLocal,(async(e,t,n)=>{try{await this._gateway.sendExtensionMessage(Cr.CONTROL,e,!0),t()}catch(r){n(r)}})),this._p2pChannel.on(Ot.RequestP2PUnmuteRemote,(async(e,t,n)=>{if(this._joinInfo)try{await this._gateway.unmuteRemote(e,this._joinInfo.stringUid||this._joinInfo.uid),t()}catch(r){r.code===Q.DISCONNECT_P2P?t():n(r)}else t()})),this._p2pChannel.on(Ot.RequestP2PMuteRemote,(async(e,t,n)=>{if(this._joinInfo)try{await this._gateway.muteRemote(e,this._joinInfo.stringUid||this._joinInfo.uid),t()}catch(r){r.code===Q.DISCONNECT_P2P?t():n(r)}else t()})),this._p2pChannel.on(Ot.StateChange,((e,t)=>{t===bn.Connected&&this._p2pChannel.republish()}))}_handleP2PChannelEvents(){this._p2pChannel.on(Ot.RequestMuteLocal,(async(e,t,n)=>{if(this._joinInfo)try{await this._gateway.muteLocal(e,this._joinInfo.stringUid||this._joinInfo.uid),t()}catch(r){r.code===Q.DISCONNECT_P2P?t():n(r)}else t()})),this._p2pChannel.on(Ot.RequestUnmuteLocal,(async(e,t,n)=>{if(this._joinInfo)try{await this._gateway.unmuteLocal(e,this._joinInfo.stringUid||this._joinInfo.uid),t()}catch(r){r.code===Q.DISCONNECT_P2P?t():n(r)}else t()})),this._p2pChannel.on(Ot.RequestRePublish,((e,t,n)=>{this.publish(e,!1).then(t).catch(n)})),this._p2pChannel.on(Ot.RequestRePublishDataChannel,((e,t,n)=>{ot.all(e.map((async r=>{const i=await this._p2pChannel.publishDataChannel([r]);try{i.forEach((o=>{this._uid&&this._gateway.publishDataChannel(this._uid,o,!0)}))}catch(o){if(o.code!==Q.DISCONNECT_P2P)throw o}}))).then(t).catch(n)})),this._p2pChannel.on(Ot.RequestReSubscribe,(async(e,t,n)=>{try{for(const{user:r,kind:i}of e)i===vt.VIDEO?await this.subscribe(r,"video"):await this.subscribe(r,"audio");t()}catch(r){n(r)}})),this._p2pChannel.on(Ot.RequestUpload,((e,t)=>{this._gateway.upload(e,t)})),this._p2pChannel.on(Ot.RequestUploadStats,(e=>{this._gateway.uploadWRTCStats(e)})),this._p2pChannel.on(Ot.MediaReconnectStart,(e=>{this.safeEmit($t.MEDIA_RECONNECT_START,e)})),this._p2pChannel.on(Ot.MediaReconnectEnd,(e=>{this.safeEmit($t.MEDIA_RECONNECT_END,e)})),this._p2pChannel.on(Ot.NeedSignalRTT,(e=>{e(this._gateway.getSignalRTT())})),this._p2pChannel.on(Ot.RequestRestartICE,(async e=>{if(this._p2pChannel instanceof rs)return;const t=await this._p2pChannel.restartICE(e),n=await t.next();if(n.done)return;const r=n.value;let i;try{i=await this._gateway.restartICE({iceParameters:r})}catch(s){return void t.throw(s)}const{iceParameters:o}=(function(s){const a=s.iceParameters;return{iceParameters:{iceUfrag:a.iceUfrag,icePwd:a.icePwd}}})(i);await t.next({remoteIceParameters:o})})),this._p2pChannel.on(Ot.RequestReconnect,(async()=>{this._gateway.reconnect()})),this._p2pChannel.on(Ot.RequestReconnectPC,(async()=>{var e;const{iceParameters:t,dtlsParameters:n,rtpCapabilities:r}=await this._p2pChannel.startP2PConnection({turnServer:(e=this._joinInfo)===null||e===void 0?void 0:e.turnServer}),{gatewayEstablishParams:i,gatewayAddress:o}=await this._gateway.reconnectPC({iceParameters:t,dtlsParameters:n,rtpCapabilities:r}),s=jF(i,o);await this._p2pChannel.connect(s),await this._p2pChannel.republish(),await this._p2pChannel.reSubscribe()})),this._p2pChannel.on(Ot.RequestUnpublishForReconnectPC,(async(e,t,n)=>{this._joinInfo&&this._uid!==void 0?(await this._gateway.unpublish(e,this._uid),t()):n()})),this._p2pChannel.on(Ot.P2PLost,(()=>{this.safeEmit($t.P2P_LOST,this.store.uid)})),this._p2pChannel.on(Ot.UpdateVideoEncoder,(e=>{e._encoderConfig&&this._gateway.setVideoProfile(e._encoderConfig)})),this._p2pChannel.on(Ot.ConnectionTypeChange,(e=>{this.safeEmit($t.IS_USING_CLOUD_PROXY,e)})),this._p2pChannel.on(Ot.RequestLowStreamParameter,(e=>{e(this._lowStreamParameter||{width:160,height:120,framerate:15,bitrate:50})})),this._p2pChannel.on(Ot.QueryClientConnectionState,(e=>{e(this.connectionState)}))}getKeyMetrics(){return this.store.keyMetrics}async enableContentInspect(e){if(!this._joinInfo||this.connectionState!=="CONNECTED")throw new xe(Q.INVALID_OPERATION,"[".concat(this._clientId,"] can not create content inspect, please join channel first"));if(this._inspect)throw new xe(Q.INVALID_OPERATION,"[".concat(this._clientId,"] Inspect content service already in connecting/connected state"));try{const n=(t={config:e},G1("ContentInspect").create(t));this._inspect=n,this.handleVideoInspectEvents(n);const{appId:r,cname:i,sid:o,token:s,uid:a,cid:c,vid:l}=this._joinInfo;await n.init({appId:r,areaCode:"",cname:i,sid:o,token:s,uid:a,cid:c,vid:l?Number(l):0},jr)}catch(n){throw Array.isArray(n)?n[0]:n}var t}handleVideoInspectEvents(e){e.on(ci.CONNECTION_STATE_CHANGE,((t,n)=>{if(this.safeEmit($t.CONTENT_INSPECT_CONNECTION_STATE_CHANGE,t,n),n===ba.CONNECTED){if(this.connectionState!=="CONNECTED")return void this.safeEmit($t.CONTENT_INSPECT_ERROR,new xe(Q.OPERATION_ABORTED,"Content inspect was cancelled because it left the channel"));e.inspectImage()}})),e.on(ci.INSPECT_RESULT,((t,n)=>{var r;if((n==null?void 0:n.code)===Q.INVALID_OPERATION&&this.connectionState==="DISCONNECTED")return D.debug("Stop inspect content because that has left channel"),this==null||(r=this._inspect)===null||r===void 0||r.close(),void(this._inspect=void 0);this.safeEmit($t.CONTENT_INSPECT_RESULT,t,n)})),e.on(ci.CLIENT_LOCAL_VIDEO_TRACK,(t=>{t(this.localTracks.filter((n=>n.trackMediaType==="video"))[0])}))}async disableContentInspect(){if(!this._inspect)throw new xe(Q.INVALID_OPERATION,"[".concat(this._clientId,"] inspectVideoContent not started"));try{this._inspect.close(),this._inspect=void 0}catch(e){throw Array.isArray(e)?e[0]:e}}async setImageModeration(e,t){if(nu(e,"enabled"),e){if(!t)throw new xe(Q.INVALID_PARAMS,"config is required");if(j$(t),!this._joinInfo)throw new xe(Q.INVALID_OPERATION,"can not create image moderation, please join channel first");try{if(this._moderation)this._moderation.updateConfig(t);else{const r=(n={config:t},G1("ImageModeration").create(n));this._moderation=r,this.handleImageModerationEvents(r);const{appId:i,cname:o,sid:s,token:a,uid:c,cid:l,vid:u}=this._joinInfo;await r.init({appId:i,areaCode:"",cname:o,sid:s,token:a,uid:c,cid:l,vid:u?Number(u):0},jr)}}catch(r){throw Array.isArray(r)?r[0]:r}}else{var n;if(!this._moderation)throw new xe(Q.INVALID_OPERATION,"[".concat(this._clientId,"] image moderation not started"));try{this._moderation.close(),this._moderation.removeAllListeners(),this._moderation=void 0}catch(r){throw Array.isArray(r)?r[0]:r}}}handleImageModerationEvents(e){e.on(Ka.CONNECTION_STATE_CHANGE,((t,n)=>{if(this.safeEmit($t.IMAGE_MODERATION_CONNECTION_STATE_CHANGE,t,n),t===Xs.CONNECTED){if(this.connectionState!=="CONNECTED")throw this.setImageModeration(!1),new xe(Q.OPERATION_ABORTED,"Image moderation was cancelled because it left the channel");e.inspectImage()}})),e.on(Ka.CLIENT_LOCAL_VIDEO_TRACK,(t=>{t(this.localTracks.filter((n=>n.trackMediaType==="video"))[0])}))}setP2PTransport(e){if((function(t){Kr(t,"transport",["default","auto","relay","sd-rtn"])})(e),this.mode!=="p2p")throw new xe(Q.INVALID_OPERATION,"only p2p mode can set p2pTransport");this.store.p2pTransport=e,D.info("[".concat(this._clientId,"] set client p2pTransport to ").concat(e))}getJoinChannelServiceRecords(){return D.debug("getJoinChannelServiceRecords"),this.store.joinChannelServiceRecords}async setPublishAudioFilterEnabled(e){nu(e,"enabled"),Dn("ENABLE_PUBLISH_AUDIO_FILTER",e),this._joinInfo&&await this._gateway.setPublishAudioFilterEnabled(e)}_handleResetAddStream(e,t){switch(t){case"audio":e._audio_added_=!1,e._trust_audio_stream_added_state_=!0;break;case"video":e._video_added_=!1,e._trust_video_stream_added_state_=!0}}},ft(at.prototype,"leave",[ej],Object.getOwnPropertyDescriptor(at.prototype,"leave"),at.prototype),ft(at.prototype,"publish",[tj],Object.getOwnPropertyDescriptor(at.prototype,"publish"),at.prototype),ft(at.prototype,"unpublish",[nj],Object.getOwnPropertyDescriptor(at.prototype,"unpublish"),at.prototype),ft(at.prototype,"subscribe",[rj],Object.getOwnPropertyDescriptor(at.prototype,"subscribe"),at.prototype),ft(at.prototype,"presubscribe",[ij],Object.getOwnPropertyDescriptor(at.prototype,"presubscribe"),at.prototype),ft(at.prototype,"massSubscribe",[oj],Object.getOwnPropertyDescriptor(at.prototype,"massSubscribe"),at.prototype),ft(at.prototype,"unsubscribe",[sj],Object.getOwnPropertyDescriptor(at.prototype,"unsubscribe"),at.prototype),ft(at.prototype,"massUnsubscribe",[aj],Object.getOwnPropertyDescriptor(at.prototype,"massUnsubscribe"),at.prototype),ft(at.prototype,"setLowStreamParameter",[cj],Object.getOwnPropertyDescriptor(at.prototype,"setLowStreamParameter"),at.prototype),ft(at.prototype,"enableDualStream",[lj],Object.getOwnPropertyDescriptor(at.prototype,"enableDualStream"),at.prototype),ft(at.prototype,"disableDualStream",[uj],Object.getOwnPropertyDescriptor(at.prototype,"disableDualStream"),at.prototype),ft(at.prototype,"setClientRole",[dj],Object.getOwnPropertyDescriptor(at.prototype,"setClientRole"),at.prototype),ft(at.prototype,"setProxyServer",[fj],Object.getOwnPropertyDescriptor(at.prototype,"setProxyServer"),at.prototype),ft(at.prototype,"setTurnServer",[hj],Object.getOwnPropertyDescriptor(at.prototype,"setTurnServer"),at.prototype),ft(at.prototype,"setLicense",[pj],Object.getOwnPropertyDescriptor(at.prototype,"setLicense"),at.prototype),ft(at.prototype,"startProxyServer",[mj],Object.getOwnPropertyDescriptor(at.prototype,"startProxyServer"),at.prototype),ft(at.prototype,"stopProxyServer",[gj],Object.getOwnPropertyDescriptor(at.prototype,"stopProxyServer"),at.prototype),ft(at.prototype,"setLocalAccessPointsV2",[vj],Object.getOwnPropertyDescriptor(at.prototype,"setLocalAccessPointsV2"),at.prototype),ft(at.prototype,"setLocalAccessPoints",[yj],Object.getOwnPropertyDescriptor(at.prototype,"setLocalAccessPoints"),at.prototype),ft(at.prototype,"setRemoteDefaultVideoStreamType",[Ej],Object.getOwnPropertyDescriptor(at.prototype,"setRemoteDefaultVideoStreamType"),at.prototype),ft(at.prototype,"setRemoteVideoStreamType",[bj],Object.getOwnPropertyDescriptor(at.prototype,"setRemoteVideoStreamType"),at.prototype),ft(at.prototype,"setStreamFallbackOption",[Sj],Object.getOwnPropertyDescriptor(at.prototype,"setStreamFallbackOption"),at.prototype),ft(at.prototype,"setEncryptionConfig",[Aj],Object.getOwnPropertyDescriptor(at.prototype,"setEncryptionConfig"),at.prototype),ft(at.prototype,"renewToken",[Cj],Object.getOwnPropertyDescriptor(at.prototype,"renewToken"),at.prototype),ft(at.prototype,"enableAudioVolumeIndicator",[wj],Object.getOwnPropertyDescriptor(at.prototype,"enableAudioVolumeIndicator"),at.prototype),ft(at.prototype,"startLiveStreaming",[Tj],Object.getOwnPropertyDescriptor(at.prototype,"startLiveStreaming"),at.prototype),ft(at.prototype,"setLiveTranscoding",[Ij],Object.getOwnPropertyDescriptor(at.prototype,"setLiveTranscoding"),at.prototype),ft(at.prototype,"stopLiveStreaming",[Pj],Object.getOwnPropertyDescriptor(at.prototype,"stopLiveStreaming"),at.prototype),ft(at.prototype,"startChannelMediaRelay",[Oj],Object.getOwnPropertyDescriptor(at.prototype,"startChannelMediaRelay"),at.prototype),ft(at.prototype,"updateChannelMediaRelay",[_j],Object.getOwnPropertyDescriptor(at.prototype,"updateChannelMediaRelay"),at.prototype),ft(at.prototype,"stopChannelMediaRelay",[Rj],Object.getOwnPropertyDescriptor(at.prototype,"stopChannelMediaRelay"),at.prototype),ft(at.prototype,"sendCustomReportMessage",[kj],Object.getOwnPropertyDescriptor(at.prototype,"sendCustomReportMessage"),at.prototype),ft(at.prototype,"pickSVCLayer",[xj],Object.getOwnPropertyDescriptor(at.prototype,"pickSVCLayer"),at.prototype),ft(at.prototype,"setRTMConfig",[Dj],Object.getOwnPropertyDescriptor(at.prototype,"setRTMConfig"),at.prototype),ft(at.prototype,"enableContentInspect",[Lj],Object.getOwnPropertyDescriptor(at.prototype,"enableContentInspect"),at.prototype),ft(at.prototype,"disableContentInspect",[Nj],Object.getOwnPropertyDescriptor(at.prototype,"disableContentInspect"),at.prototype),ft(at.prototype,"setImageModeration",[Mj],Object.getOwnPropertyDescriptor(at.prototype,"setImageModeration"),at.prototype),ft(at.prototype,"setP2PTransport",[Bj],Object.getOwnPropertyDescriptor(at.prototype,"setP2PTransport"),at.prototype),ft(at.prototype,"getJoinChannelServiceRecords",[Fj],Object.getOwnPropertyDescriptor(at.prototype,"getJoinChannelServiceRecords"),at.prototype),ft(at.prototype,"setPublishAudioFilterEnabled",[Uj],Object.getOwnPropertyDescriptor(at.prototype,"setPublishAudioFilterEnabled"),at.prototype),at);class Eg{constructor(t,n){H(this,"id",0),H(this,"element",void 0),H(this,"peerPair",void 0),H(this,"context",void 0),H(this,"audioPlayerElement",void 0),H(this,"audioTrack",void 0),Eg.count+=1,this.id=Eg.count,this.element=t,this.context=n}initPeers(){this.peerPair=[new RTCPeerConnection,new RTCPeerConnection],this.peerPair[1].ontrack=t=>{const n=document.createElement("audio");n.srcObject=new MediaStream([t.track]),n.play(),this.audioPlayerElement=n}}async switchSdp(){if(!this.peerPair)return;const t=async(r,i)=>{const o=i==="offer"?await r.createOffer():await r.createAnswer();return await r.setLocalDescription(o),r.iceGatheringState==="complete"?r.localDescription:new ot((s=>{r.onicegatheringstatechange=()=>{r.iceGatheringState==="complete"&&s(r.localDescription)}}))},n=async(r,i)=>await r.setRemoteDescription(i);try{const r=await t(this.peerPair[0],"offer");await n(this.peerPair[1],r);const i=await t(this.peerPair[1],"answer");await n(this.peerPair[0],i)}catch(r){throw new xe(Q.LOCAL_AEC_ERROR,r.toString()).print()}}async getTracksFromMediaElement(t){if(this.audioTrack)return this.audioTrack;let n;try{t instanceof HTMLVideoElement&&(t.captureStream?t.captureStream():t.mozCaptureStream()),n=this.context.createMediaStreamDestination(),this.context.createMediaElementSource(t).connect(n)}catch(i){throw new xe(Q.LOCAL_AEC_ERROR,i.toString()).print()}if(!n)throw new xe(Q.LOCAL_AEC_ERROR,"no dest node when local aec").print();const r=n.stream.getAudioTracks()[0];return this.audioTrack=r,r}getElement(){return this.element}async startEchoCancellation(){this.context.resume(),this.peerPair&&this.close(),this.initPeers();const t=this.element,n=await this.getTracksFromMediaElement(t);this.peerPair&&this.peerPair[0].addTrack(n),await this.switchSdp()}close(){D.debug("close echo cancellation unit, id is",this.id),this.audioPlayerElement&&this.audioPlayerElement.pause(),this.peerPair&&this.peerPair.forEach((t=>{t.close()})),this.peerPair=void 0,this.audioPlayerElement=void 0}}var Hj,I5;H(Eg,"count",0);const RFe=window.AudioContext||window.webkitAudioContext,kFe=new(Hj=Pt({report:mt}),ft((I5=class{constructor(){H(this,"units",[]),H(this,"context",void 0)}processExternalMediaAEC(e){if(!this._doesEnvironmentNeedAEC())return D.debug("the system does not need to process local aec"),-1;this.context||(this.context=new RFe);let t=this.units.find((n=>n&&n.getElement()===e));return t||(t=new Eg(e,this.context),this.units.push(t)),t.startEchoCancellation(),D.debug("start processing local audio echo cancellation, id is",t.id),t.id}_doesEnvironmentNeedAEC(){return an().name!==An.SAFARI}}).prototype,"processExternalMediaAEC",[Hj],Object.getOwnPropertyDescriptor(I5.prototype,"processExternalMediaAEC"),I5.prototype),I5);function zj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable}))),n.push.apply(n,r)}return n}function Wj(e){for(var t=1;t1&&arguments[1]!==void 0&&arguments[1];if(!IE)return;const n=Tr._cspEventHandlerPointer;if(n&&t)return void console.error(n,t);const r=i=>{if(!(i&&i.blockedURI&&(Tr.onSecurityPolicyViolation||Tr.getListeners(Jc.SECURITY_POLICY_VIOLATION).length>0)))return;const o=i.blockedURI;he("CSP_DETECTED_HOSTNAME_LIST").some((s=>lt(o).call(o,s)))&&(Tr.onSecurityPolicyViolation&&typeof Tr.onSecurityPolicyViolation=="function"&&Tr.onSecurityPolicyViolation(i),Tr.getListeners(Jc.SECURITY_POLICY_VIOLATION).length>0&&Tr.safeEmit(Jc.SECURITY_POLICY_VIOLATION,i))};n&&IE.removeEventListener("securitypolicyviolation",n),(t||e&&typeof e=="function"||Tr.getListeners(Jc.SECURITY_POLICY_VIOLATION).length>0)&&IE.addEventListener("securitypolicyviolation",r),Tr._cspEventHandlerPointer=r}var xFe=Co,DFe=JK,Vj=RegExp.prototype,LFe=function(e){return e===Vj||xFe(Vj,e)?DFe(e):e.flags},io=kr(LFe);function t1(e){let t=e.length;for(;--t>=0;)e[t]=0}const DI=256,z$=286,Am=30,Cm=15,hC=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),R3=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),NFe=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Gj=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ql=new Array(576);t1(ql);const wm=new Array(60);t1(wm);const bg=new Array(512);t1(bg);const Sg=new Array(256);t1(Sg);const LI=new Array(29);t1(LI);const M4=new Array(Am);function PE(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}let Jj,Zj,Yj;function OE(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}t1(M4);const W$=e=>e<256?bg[e]:bg[256+(e>>>7)],Ag=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},_s=(e,t,n)=>{e.bi_valid>16-n?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<{_s(e,n[2*t],n[2*t+1])},V$=(e,t)=>{let n=0;do n|=1&e,e>>>=1,n<<=1;while(--t>0);return n>>>1},G$=(e,t,n)=>{const r=new Array(16);let i,o,s=0;for(i=1;i<=Cm;i++)s=s+n[i-1]<<1,r[i]=s;for(o=0;o<=t;o++){let a=e[2*o+1];a!==0&&(e[2*o]=V$(r[a]++,a))}},J$=e=>{let t;for(t=0;t{e.bi_valid>8?Ag(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Xj=(e,t,n,r)=>{const i=2*t,o=2*n;return e[i]{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i{let r,i,o,s,a=0;if(e.sym_next!==0)do r=255&e.pending_buf[e.sym_buf+a++],r+=(255&e.pending_buf[e.sym_buf+a++])<<8,i=e.pending_buf[e.sym_buf+a++],r===0?Zc(e,i,t):(o=Sg[i],Zc(e,o+DI+1,t),s=hC[o],s!==0&&(i-=LI[o],_s(e,i,s)),r--,o=W$(r),Zc(e,o,n),s=R3[o],s!==0&&(r-=M4[o],_s(e,r,s)));while(a{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems;let s,a,c,l=-1;for(e.heap_len=0,e.heap_max=573,s=0;s>1;s>=1;s--)_E(e,n,s);c=o;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],_E(e,n,1),a=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=a,n[2*c]=n[2*s]+n[2*a],e.depth[c]=(e.depth[s]>=e.depth[a]?e.depth[s]:e.depth[a])+1,n[2*s+1]=n[2*a+1]=c,e.heap[1]=c++,_E(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((u,d)=>{const f=d.dyn_tree,h=d.max_code,p=d.stat_desc.static_tree,g=d.stat_desc.has_stree,m=d.stat_desc.extra_bits,y=d.stat_desc.extra_base,v=d.stat_desc.max_length;let E,b,S,w,C,_,I=0;for(w=0;w<=Cm;w++)u.bl_count[w]=0;for(f[2*u.heap[u.heap_max]+1]=0,E=u.heap_max+1;E<573;E++)b=u.heap[E],w=f[2*f[2*b+1]+1]+1,w>v&&(w=v,I++),f[2*b+1]=w,b>h||(u.bl_count[w]++,C=0,b>=y&&(C=m[b-y]),_=f[2*b],u.opt_len+=_*(w+C),g&&(u.static_len+=_*(p[2*b+1]+C)));if(I!==0){do{for(w=v-1;u.bl_count[w]===0;)w--;u.bl_count[w]--,u.bl_count[w+1]+=2,u.bl_count[v]--,I-=2}while(I>0);for(w=v;w!==0;w--)for(b=u.bl_count[w];b!==0;)S=u.heap[--E],S>h||(f[2*S+1]!==w&&(u.opt_len+=(w-f[2*S+1])*f[2*S],f[2*S+1]=w),b--)}})(e,t),G$(n,l,e.bl_count)},Kj=(e,t,n)=>{let r,i,o=-1,s=t[1],a=0,c=7,l=4;for(s===0&&(c=138,l=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)i=s,s=t[2*(r+1)+1],++a{let r,i,o=-1,s=t[1],a=0,c=7,l=4;for(s===0&&(c=138,l=3),r=0;r<=n;r++)if(i=s,s=t[2*(r+1)+1],!(++a{_s(e,0+(r?1:0),3),Z$(e),Ag(e,n),Ag(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n};var MFe=e=>{$j||((()=>{let t,n,r,i,o;const s=new Array(16);for(r=0,i=0;i<28;i++)for(LI[i]=r,t=0;t<1<>=7;i{let i,o,s=0;e.level>0?(e.strm.data_type===2&&(e.strm.data_type=(a=>{let c,l=4093624447;for(c=0;c<=31;c++,l>>>=1)if(1&l&&a.dyn_ltree[2*c]!==0)return 0;if(a.dyn_ltree[18]!==0||a.dyn_ltree[20]!==0||a.dyn_ltree[26]!==0)return 1;for(c=32;c{let c;for(Kj(a,a.dyn_ltree,a.l_desc.max_code),Kj(a,a.dyn_dtree,a.d_desc.max_code),RE(a,a.bl_desc),c=18;c>=3&&a.bl_tree[2*Gj[c]+1]===0;c--);return a.opt_len+=3*(c+1)+5+5+4,c})(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=n+5,n+4<=i&&t!==-1?Y$(e,t,n,r):e.strategy===4||o===i?(_s(e,2+(r?1:0),3),Qj(e,ql,wm)):(_s(e,4+(r?1:0),3),((a,c,l,u)=>{let d;for(_s(a,c-257,5),_s(a,l-1,5),_s(a,u-4,4),d=0;d(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(Sg[n]+DI+1)]++,e.dyn_dtree[2*W$(t)]++),e.sym_next===e.sym_end),UFe=e=>{_s(e,2,3),Zc(e,256,ql),(t=>{t.bi_valid===16?(Ag(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(e)},jFe={_tr_init:MFe,_tr_stored_block:Y$,_tr_flush_block:BFe,_tr_tally:FFe,_tr_align:UFe},Cg=(e,t,n,r)=>{let i=65535&e|0,o=e>>>16&65535|0,s=0;for(;n!==0;){s=n>2e3?2e3:n,n-=s;do i=i+t[r++]|0,o=o+i|0;while(--s);i%=65521,o%=65521}return i|o<<16|0};const HFe=new Uint32Array((()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t})());var ho=(e,t,n,r)=>{const i=HFe,o=r+n;e^=-1;for(let s=r;s>>8^i[255&(e^t[s])];return-1^e},gf={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},v6={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:zFe,_tr_stored_block:pC,_tr_flush_block:WFe,_tr_tally:Rd,_tr_align:VFe}=jFe,{Z_NO_FLUSH:kd,Z_PARTIAL_FLUSH:GFe,Z_FULL_FLUSH:JFe,Z_FINISH:Pa,Z_BLOCK:eH,Z_OK:To,Z_STREAM_END:tH,Z_STREAM_ERROR:ol,Z_DATA_ERROR:ZFe,Z_BUF_ERROR:kE,Z_DEFAULT_COMPRESSION:YFe,Z_FILTERED:XFe,Z_HUFFMAN_ONLY:P5,Z_RLE:QFe,Z_FIXED:KFe,Z_DEFAULT_STRATEGY:qFe,Z_UNKNOWN:$Fe,Z_DEFLATED:y6}=v6,mC=286,eUe=30,tUe=19,nUe=2*mC+1,rUe=15,W0=258,sl=262,Ip=42,V0=113,Z1=666,G0=(e,t)=>(e.msg=gf[t],t),nH=e=>2*e-(e>4?9:0),gd=e=>{let t=e.length;for(;--t>=0;)e[t]=0},iUe=e=>{let t,n,r,i=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=i?n-i:0;while(--t);t=i,r=t;do n=e.prev[--r],e.prev[r]=n>=i?n-i:0;while(--t)};let xd=(e,t,n)=>(t<{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},$s=(e,t)=>{WFe(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ks(e.strm)},br=(e,t)=>{e.pending_buf[e.pending++]=t},I1=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},gC=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=Cg(e.adler,t,i,n):e.state.wrap===2&&(e.adler=ho(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},X$=(e,t)=>{let n,r,i=e.max_chain_length,o=e.strstart,s=e.prev_length,a=e.nice_match;const c=e.strstart>e.w_size-sl?e.strstart-(e.w_size-sl):0,l=e.window,u=e.w_mask,d=e.prev,f=e.strstart+W0;let h=l[o+s-1],p=l[o+s];e.prev_length>=e.good_match&&(i>>=2),a>e.lookahead&&(a=e.lookahead);do if(n=t,l[n+s]===p&&l[n+s-1]===h&&l[n]===l[o]&&l[++n]===l[o+1]){o+=2,n++;do;while(l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&os){if(e.match_start=t,s=r,r>=a)break;h=l[o+s-1],p=l[o+s]}}while((t=d[t&u])>c&&--i!=0);return s<=e.lookahead?s:e.lookahead},Pp=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-sl)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),iUe(e),r+=t),e.strm.avail_in===0)break;if(n=gC(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=3)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=xd(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=xd(e,e.ins_h,e.window[i+3-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead{let n,r,i,o=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,s=0,a=e.strm.avail_in;do{if(n=65535,i=e.bi_valid+42>>3,e.strm.avail_outr+e.strm.avail_in&&(n=r+e.strm.avail_in),n>i&&(n=i),n>8,e.pending_buf[e.pending-2]=~n,e.pending_buf[e.pending-1]=~n>>8,Ks(e.strm),r&&(r>n&&(r=n),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+r),e.strm.next_out),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r,e.block_start+=r,n-=r),n&&(gC(e.strm,e.strm.output,e.strm.next_out,n),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n)}while(s===0);return a-=e.strm.avail_in,a&&(a>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=a&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_wateri&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,i+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),i>e.strm.avail_in&&(i=e.strm.avail_in),i&&(gC(e.strm,e.window,e.strstart,i),e.strstart+=i,e.insert+=i>e.w_size-e.insert?e.w_size-e.insert:i),e.high_water>3,i=e.pending_buf_size-i>65535?65535:e.pending_buf_size-i,o=i>e.w_size?e.w_size:i,r=e.strstart-e.block_start,(r>=o||(r||t===Pa)&&t!==kd&&e.strm.avail_in===0&&r<=i)&&(n=r>i?i:r,s=t===Pa&&e.strm.avail_in===0&&n===r?1:0,pC(e,e.block_start,n,s),e.block_start+=n,Ks(e.strm)),s?3:1)},xE=(e,t)=>{let n,r;for(;;){if(e.lookahead=3&&(e.ins_h=xd(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-sl&&(e.match_length=X$(e,n)),e.match_length>=3)if(r=Rd(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do e.strstart++,e.ins_h=xd(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!=0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=xd(e,e.ins_h,e.window[e.strstart+1]);else r=Rd(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&($s(e,!1),e.strm.avail_out===0))return 1}return e.insert=e.strstart<2?e.strstart:2,t===Pa?($s(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&($s(e,!1),e.strm.avail_out===0)?1:2},ih=(e,t)=>{let n,r,i;for(;;){if(e.lookahead=3&&(e.ins_h=xd(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,n!==0&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-3,r=Rd(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=xd(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!=0);if(e.match_available=0,e.match_length=2,e.strstart++,r&&($s(e,!1),e.strm.avail_out===0))return 1}else if(e.match_available){if(r=Rd(e,0,e.window[e.strstart-1]),r&&$s(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Rd(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===Pa?($s(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&($s(e,!1),e.strm.avail_out===0)?1:2};function Bc(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}const Y1=[new Bc(0,0,0,0,Q$),new Bc(4,4,8,4,xE),new Bc(4,5,16,8,xE),new Bc(4,6,32,32,xE),new Bc(4,4,16,16,ih),new Bc(8,16,32,32,ih),new Bc(8,16,128,128,ih),new Bc(8,32,128,256,ih),new Bc(32,128,258,1024,ih),new Bc(32,258,258,4096,ih)];function oUe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=y6,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(2*nUe),this.dyn_dtree=new Uint16Array(2*(2*eUe+1)),this.bl_tree=new Uint16Array(2*(2*tUe+1)),gd(this.dyn_ltree),gd(this.dyn_dtree),gd(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(rUe+1),this.heap=new Uint16Array(2*mC+1),gd(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*mC+1),gd(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const wg=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==Ip&&t.status!==57&&t.status!==69&&t.status!==73&&t.status!==91&&t.status!==103&&t.status!==V0&&t.status!==Z1?1:0},K$=e=>{if(wg(e))return G0(e,ol);e.total_in=e.total_out=0,e.data_type=$Fe;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?57:t.wrap?Ip:V0,e.adler=t.wrap===2?0:1,t.last_flush=-2,zFe(t),To},q$=e=>{const t=K$(e);return t===To&&(n=>{n.window_size=2*n.w_size,gd(n.head),n.max_lazy_match=Y1[n.level].max_lazy,n.good_match=Y1[n.level].good_length,n.nice_match=Y1[n.level].nice_length,n.max_chain_length=Y1[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=2,n.match_available=0,n.ins_h=0})(e.state),t},rH=(e,t,n,r,i,o)=>{if(!e)return ol;let s=1;if(t===YFe&&(t=6),r<0?(s=0,r=-r):r>15&&(s=2,r-=16),i<1||i>9||n!==y6||r<8||r>15||t<0||t>9||o<0||o>KFe||r===8&&s!==1)return G0(e,ol);r===8&&(r=9);const a=new oUe;return e.state=a,a.strm=e,a.status=Ip,a.wrap=s,a.gzhead=null,a.w_bits=r,a.w_size=1<{if(wg(e)||t>eH||t<0)return e?G0(e,ol):ol;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===Z1&&t!==Pa)return G0(e,e.avail_out===0?kE:ol);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(Ks(e),e.avail_out===0)return n.last_flush=-1,To}else if(e.avail_in===0&&nH(t)<=nH(r)&&t!==Pa)return G0(e,kE);if(n.status===Z1&&e.avail_in!==0)return G0(e,kE);if(n.status===Ip&&n.wrap===0&&(n.status=V0),n.status===Ip){let i=y6+(n.w_bits-8<<4)<<8,o=-1;if(o=n.strategy>=P5||n.level<2?0:n.level<6?1:n.level===6?2:3,i|=o<<6,n.strstart!==0&&(i|=32),i+=31-i%31,I1(n,i),n.strstart!==0&&(I1(n,e.adler>>>16),I1(n,65535&e.adler)),e.adler=1,n.status=V0,Ks(e),n.pending!==0)return n.last_flush=-1,To}if(n.status===57){if(e.adler=0,br(n,31),br(n,139),br(n,8),n.gzhead)br(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),br(n,255&n.gzhead.time),br(n,n.gzhead.time>>8&255),br(n,n.gzhead.time>>16&255),br(n,n.gzhead.time>>24&255),br(n,n.level===9?2:n.strategy>=P5||n.level<2?4:0),br(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(br(n,255&n.gzhead.extra.length),br(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=ho(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69;else if(br(n,0),br(n,0),br(n,0),br(n,0),br(n,0),br(n,n.level===9?2:n.strategy>=P5||n.level<2?4:0),br(n,3),n.status=V0,Ks(e),n.pending!==0)return n.last_flush=-1,To}if(n.status===69){if(n.gzhead.extra){let i=n.pending,o=(65535&n.gzhead.extra.length)-n.gzindex;for(;n.pending+o>n.pending_buf_size;){let a=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(e.adler=ho(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=a,Ks(e),n.pending!==0)return n.last_flush=-1,To;i=0,o-=a}let s=new Uint8Array(n.gzhead.extra);n.pending_buf.set(s.subarray(n.gzindex,n.gzindex+o),n.pending),n.pending+=o,n.gzhead.hcrc&&n.pending>i&&(e.adler=ho(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=73}if(n.status===73){if(n.gzhead.name){let i,o=n.pending;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>o&&(e.adler=ho(e.adler,n.pending_buf,n.pending-o,o)),Ks(e),n.pending!==0)return n.last_flush=-1,To;o=0}i=n.gzindexo&&(e.adler=ho(e.adler,n.pending_buf,n.pending-o,o)),n.gzindex=0}n.status=91}if(n.status===91){if(n.gzhead.comment){let i,o=n.pending;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>o&&(e.adler=ho(e.adler,n.pending_buf,n.pending-o,o)),Ks(e),n.pending!==0)return n.last_flush=-1,To;o=0}i=n.gzindexo&&(e.adler=ho(e.adler,n.pending_buf,n.pending-o,o))}n.status=103}if(n.status===103){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Ks(e),n.pending!==0))return n.last_flush=-1,To;br(n,255&e.adler),br(n,e.adler>>8&255),e.adler=0}if(n.status=V0,Ks(e),n.pending!==0)return n.last_flush=-1,To}if(e.avail_in!==0||n.lookahead!==0||t!==kd&&n.status!==Z1){let i=n.level===0?Q$(n,t):n.strategy===P5?((o,s)=>{let a;for(;;){if(o.lookahead===0&&(Pp(o),o.lookahead===0)){if(s===kd)return 1;break}if(o.match_length=0,a=Rd(o,0,o.window[o.strstart]),o.lookahead--,o.strstart++,a&&($s(o,!1),o.strm.avail_out===0))return 1}return o.insert=0,s===Pa?($s(o,!0),o.strm.avail_out===0?3:4):o.sym_next&&($s(o,!1),o.strm.avail_out===0)?1:2})(n,t):n.strategy===QFe?((o,s)=>{let a,c,l,u;const d=o.window;for(;;){if(o.lookahead<=W0){if(Pp(o),o.lookahead<=W0&&s===kd)return 1;if(o.lookahead===0)break}if(o.match_length=0,o.lookahead>=3&&o.strstart>0&&(l=o.strstart-1,c=d[l],c===d[++l]&&c===d[++l]&&c===d[++l])){u=o.strstart+W0;do;while(c===d[++l]&&c===d[++l]&&c===d[++l]&&c===d[++l]&&c===d[++l]&&c===d[++l]&&c===d[++l]&&c===d[++l]&&lo.lookahead&&(o.match_length=o.lookahead)}if(o.match_length>=3?(a=Rd(o,1,o.match_length-3),o.lookahead-=o.match_length,o.strstart+=o.match_length,o.match_length=0):(a=Rd(o,0,o.window[o.strstart]),o.lookahead--,o.strstart++),a&&($s(o,!1),o.strm.avail_out===0))return 1}return o.insert=0,s===Pa?($s(o,!0),o.strm.avail_out===0?3:4):o.sym_next&&($s(o,!1),o.strm.avail_out===0)?1:2})(n,t):Y1[n.level].func(n,t);if(i!==3&&i!==4||(n.status=Z1),i===1||i===3)return e.avail_out===0&&(n.last_flush=-1),To;if(i===2&&(t===GFe?VFe(n):t!==eH&&(pC(n,0,0,!1),t===JFe&&(gd(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Ks(e),e.avail_out===0))return n.last_flush=-1,To}return t!==Pa?To:n.wrap<=0?tH:(n.wrap===2?(br(n,255&e.adler),br(n,e.adler>>8&255),br(n,e.adler>>16&255),br(n,e.adler>>24&255),br(n,255&e.total_in),br(n,e.total_in>>8&255),br(n,e.total_in>>16&255),br(n,e.total_in>>24&255)):(I1(n,e.adler>>>16),I1(n,65535&e.adler)),Ks(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?To:tH)},aUe=(e,t)=>{let n=t.length;if(wg(e))return ol;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==Ip||r.lookahead)return ol;if(i===1&&(e.adler=Cg(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(gd(r.head),r.strstart=0,r.block_start=0,r.insert=0);let c=new Uint8Array(r.w_size);c.set(t.subarray(n-r.w_size,n),0),t=c,n=r.w_size}const o=e.avail_in,s=e.next_in,a=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,Pp(r);r.lookahead>=3;){let c=r.strstart,l=r.lookahead-2;do r.ins_h=xd(r,r.ins_h,r.window[c+3-1]),r.prev[c&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=c,c++;while(--l);r.strstart=c,r.lookahead=2,Pp(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=s,e.input=a,e.avail_in=o,r.wrap=i,To},Tm={deflateInit:(e,t)=>rH(e,t,y6,15,8,qFe),deflateInit2:rH,deflateReset:q$,deflateResetKeep:K$,deflateSetHeader:(e,t)=>wg(e)||e.state.wrap!==2?ol:(e.state.gzhead=t,To),deflate:sUe,deflateEnd:e=>{if(wg(e))return ol;const t=e.state.status;return e.state=null,t===V0?G0(e,ZFe):To},deflateSetDictionary:aUe,deflateInfo:"pako deflate (from Nodeca project)"};const cUe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var E6={assign:function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)cUe(n,r)&&(e[r]=n[r])}}return e},flattenChunks:e=>{let t=0;for(let r=0,i=e.length;r=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Tg[254]=Tg[254]=1;var Ig={string2buf:e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,o,s=e.length,a=0;for(i=0;i>>6,t[o++]=128|63&n):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|63&n):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|63&n);return t},buf2string:(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const o=new Array(2*n);for(i=0,r=0;r4)o[i++]=65533,r+=a-1;else{for(s&=a===2?31:a===3?15:7;a>1&&r1?o[i++]=65533:s<65536?o[i++]=s:(s-=65536,o[i++]=55296|s>>10&1023,o[i++]=56320|1023&s)}}return((s,a)=>{if(a<65534&&s.subarray&&$$)return String.fromCharCode.apply(null,s.length===a?s:s.subarray(0,a));let c="";for(let l=0;l{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(192&e[n])==128;)n--;return n<0||n===0?t:n+Tg[e[n]]>t?n:t}},eee=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const tee=Object.prototype.toString,{Z_NO_FLUSH:lUe,Z_SYNC_FLUSH:uUe,Z_FULL_FLUSH:dUe,Z_FINISH:fUe,Z_OK:B4,Z_STREAM_END:hUe,Z_DEFAULT_COMPRESSION:pUe,Z_DEFAULT_STRATEGY:mUe,Z_DEFLATED:gUe}=v6;function k3(e){this.options=E6.assign({level:pUe,method:gUe,chunkSize:16384,windowBits:15,memLevel:8,strategy:mUe},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new eee,this.strm.avail_out=0;let n=Tm.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==B4)throw new Error(gf[n]);if(t.header&&Tm.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(r=typeof t.dictionary=="string"?Ig.string2buf(t.dictionary):tee.call(t.dictionary)==="[object ArrayBuffer]"?new Uint8Array(t.dictionary):t.dictionary,n=Tm.deflateSetDictionary(this.strm,r),n!==B4)throw new Error(gf[n]);this._dict_set=!0}}function vUe(e,t){const n=new k3(t);if(n.push(e,!0),n.err)throw n.msg||gf[n.err];return n.result}k3.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,o;if(this.ended)return!1;for(o=t===~~t?t:t===!0?fUe:lUe,typeof e=="string"?n.input=Ig.string2buf(e):tee.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;)if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(o===uUe||o===dUe)&&n.avail_out<=6)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else{if(i=Tm.deflate(n,o),i===hUe)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Tm.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===B4;if(n.avail_out!==0){if(o>0&&n.next_out>0)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else if(n.avail_in===0)break}else this.onData(n.output)}return!0},k3.prototype.onData=function(e){this.chunks.push(e)},k3.prototype.onEnd=function(e){e===B4&&(this.result=E6.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var yUe={deflate:vUe};const O5=16209;var EUe=function(e,t){let n,r,i,o,s,a,c,l,u,d,f,h,p,g,m,y,v,E,b,S,w,C,_,I;const O=e.state;n=e.next_in,_=e.input,r=n+(e.avail_in-5),i=e.next_out,I=e.output,o=i-(t-e.avail_out),s=i+(e.avail_out-257),a=O.dmax,c=O.wsize,l=O.whave,u=O.wnext,d=O.window,f=O.hold,h=O.bits,p=O.lencode,g=O.distcode,m=(1<>>24,f>>>=E,h-=E,E=v>>>16&255,E===0)I[i++]=65535&v;else{if(!(16&E)){if((64&E)==0){v=p[(65535&v)+(f&(1<>>=E,h-=E),h<15&&(f+=_[n++]<>>24,f>>>=E,h-=E,E=v>>>16&255,!(16&E)){if((64&E)==0){v=g[(65535&v)+(f&(1<a){e.msg="invalid distance too far back",O.mode=O5;break e}if(f>>>=E,h-=E,E=i-o,S>E){if(E=S-E,E>l&&O.sane){e.msg="invalid distance too far back",O.mode=O5;break e}if(w=0,C=d,u===0){if(w+=c-E,E2;)I[i++]=C[w++],I[i++]=C[w++],I[i++]=C[w++],b-=3;b&&(I[i++]=C[w++],b>1&&(I[i++]=C[w++]))}else{w=i-S;do I[i++]=I[w++],I[i++]=I[w++],I[i++]=I[w++],b-=3;while(b>2);b&&(I[i++]=I[w++],b>1&&(I[i++]=I[w++]))}break}}break}}while(n>3,n-=b,h-=b<<3,f&=(1<{const c=a.bits;let l,u,d,f,h,p,g=0,m=0,y=0,v=0,E=0,b=0,S=0,w=0,C=0,_=0,I=null;const O=new Uint16Array(16),L=new Uint16Array(16);let R,F,W,J=null;for(g=0;g<=_5;g++)O[g]=0;for(m=0;m=1&&O[v]===0;v--);if(E>v&&(E=v),v===0)return i[o++]=20971520,i[o++]=20971520,a.bits=1,0;for(y=1;y0&&(e===0||v!==1))return-1;for(L[1]=0,g=1;g<_5;g++)L[g+1]=L[g]+O[g];for(m=0;m852||e===2&&C>592)return 1;for(;;){R=g-S,s[m]+1=p?(F=J[s[m]-p],W=I[s[m]-p]):(F=96,W=0),l=1<>S)+u]=R<<24|F<<16|W|0;while(u!==0);for(l=1<>=1;if(l!==0?(_&=l-1,_+=l):_=0,m++,--O[g]==0){if(g===v)break;g=t[n+s[m]]}if(g>E&&(_&f)!==d){for(S===0&&(S=E),h+=y,b=g-S,w=1<852||e===2&&C>592)return 1;d=_&f,i[d]=E<<24|b<<16|h-o|0}}return _!==0&&(i[h+_]=g-S<<24|64<<16|0),a.bits=E,0};const{Z_FINISH:iH,Z_BLOCK:wUe,Z_TREES:R5,Z_OK:rf,Z_STREAM_END:TUe,Z_NEED_DICT:IUe,Z_STREAM_ERROR:Oa,Z_DATA_ERROR:nee,Z_MEM_ERROR:ree,Z_BUF_ERROR:PUe,Z_DEFLATED:oH}=v6,b6=16180,F4=16190,Ml=16191,DE=16192,LE=16194,k5=16199,x5=16200,NE=16206,ai=16209,sH=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function OUe(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const of=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode16211?1:0},iee=e=>{if(of(e))return Oa;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=b6,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,rf},oee=e=>{if(of(e))return Oa;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,iee(e)},see=(e,t)=>{let n;if(of(e))return Oa;const r=e.state;return t<0?(n=0,t=-t):(n=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Oa:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,oee(e))},aH=(e,t)=>{if(!e)return Oa;const n=new OUe;e.state=n,n.strm=e,n.window=null,n.mode=b6;const r=see(e,t);return r!==rf&&(e.state=null),r};let ME,BE,cH=!0;const _Ue=e=>{if(cH){ME=new Int32Array(512),BE=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Im(1,e.lens,0,288,ME,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Im(2,e.lens,0,32,BE,0,e.work,{bits:5}),cH=!1}e.lencode=ME,e.lenbits=9,e.distcode=BE,e.distbits=5},aee=(e,t,n,r)=>{let i;const o=e.state;return o.window===null&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(n-o.wsize,n),0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),o.window.set(t.subarray(n-r,n-r+i),o.wnext),(r-=i)?(o.window.set(t.subarray(n-r,n),0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave{let n,r,i,o,s,a,c,l,u,d,f,h,p,g,m,y,v,E,b,S,w,C,_=0;const I=new Uint8Array(4);let O,L;const R=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(of(e)||!e.output||!e.input&&e.avail_in!==0)return Oa;n=e.state,n.mode===Ml&&(n.mode=DE),s=e.next_out,i=e.output,c=e.avail_out,o=e.next_in,r=e.input,a=e.avail_in,l=n.hold,u=n.bits,d=a,f=c,C=rf;e:for(;;)switch(n.mode){case b6:if(n.wrap===0){n.mode=DE;break}for(;u<16;){if(a===0)break e;a--,l+=r[o++]<>>8&255,n.check=ho(n.check,I,2,0),l=0,u=0,n.mode=16181;break}if(n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=ai;break}if((15&l)!==oH){e.msg="unknown compression method",n.mode=ai;break}if(l>>>=4,u-=4,w=8+(15&l),n.wbits===0&&(n.wbits=w),w>15||w>n.wbits){e.msg="invalid window size",n.mode=ai;break}n.dmax=1<>8&1),512&io(n)&&4&n.wrap&&(I[0]=255&l,I[1]=l>>>8&255,n.check=ho(n.check,I,2,0)),l=0,u=0,n.mode=16182;case 16182:for(;u<32;){if(a===0)break e;a--,l+=r[o++]<>>8&255,I[2]=l>>>16&255,I[3]=l>>>24&255,n.check=ho(n.check,I,4,0)),l=0,u=0,n.mode=16183;case 16183:for(;u<16;){if(a===0)break e;a--,l+=r[o++]<>8),512&io(n)&&4&n.wrap&&(I[0]=255&l,I[1]=l>>>8&255,n.check=ho(n.check,I,2,0)),l=0,u=0,n.mode=16184;case 16184:if(1024&io(n)){for(;u<16;){if(a===0)break e;a--,l+=r[o++]<>>8&255,n.check=ho(n.check,I,2,0)),l=0,u=0}else n.head&&(n.head.extra=null);n.mode=16185;case 16185:if(1024&io(n)&&(h=n.length,h>a&&(h=a),h&&(n.head&&(w=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(o,o+h),w)),512&io(n)&&4&n.wrap&&(n.check=ho(n.check,r,h,o)),a-=h,o+=h,n.length-=h),n.length))break e;n.length=0,n.mode=16186;case 16186:if(2048&io(n)){if(a===0)break e;h=0;do w=r[o+h++],n.head&&w&&n.length<65536&&(n.head.name+=String.fromCharCode(w));while(w&&h>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=Ml;break;case 16189:for(;u<32;){if(a===0)break e;a--,l+=r[o++]<>>=7&u,u-=7&u,n.mode=NE;break}for(;u<3;){if(a===0)break e;a--,l+=r[o++]<>>=1,u-=1,3&l){case 0:n.mode=16193;break;case 1:if(_Ue(n),n.mode=k5,t===R5){l>>>=2,u-=2;break e}break;case 2:n.mode=16196;break;case 3:e.msg="invalid block type",n.mode=ai}l>>>=2,u-=2;break;case 16193:for(l>>>=7&u,u-=7&u;u<32;){if(a===0)break e;a--,l+=r[o++]<>>16^65535)){e.msg="invalid stored block lengths",n.mode=ai;break}if(n.length=65535&l,l=0,u=0,n.mode=LE,t===R5)break e;case LE:n.mode=16195;case 16195:if(h=n.length,h){if(h>a&&(h=a),h>c&&(h=c),h===0)break e;i.set(r.subarray(o,o+h),s),a-=h,o+=h,c-=h,s+=h,n.length-=h;break}n.mode=Ml;break;case 16196:for(;u<14;){if(a===0)break e;a--,l+=r[o++]<>>=5,u-=5,n.ndist=1+(31&l),l>>>=5,u-=5,n.ncode=4+(15&l),l>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=ai;break}n.have=0,n.mode=16197;case 16197:for(;n.have>>=3,u-=3}for(;n.have<19;)n.lens[R[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,O={bits:n.lenbits},C=Im(0,n.lens,0,19,n.lencode,0,n.work,O),n.lenbits=O.bits,C){e.msg="invalid code lengths set",n.mode=ai;break}n.have=0,n.mode=16198;case 16198:for(;n.have>>24,y=_>>>16&255,v=65535&_,!(m<=u);){if(a===0)break e;a--,l+=r[o++]<>>=m,u-=m,n.lens[n.have++]=v;else{if(v===16){for(L=m+2;u>>=m,u-=m,n.have===0){e.msg="invalid bit length repeat",n.mode=ai;break}w=n.lens[n.have-1],h=3+(3&l),l>>>=2,u-=2}else if(v===17){for(L=m+3;u>>=m,u-=m,w=0,h=3+(7&l),l>>>=3,u-=3}else{for(L=m+7;u>>=m,u-=m,w=0,h=11+(127&l),l>>>=7,u-=7}if(n.have+h>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=ai;break}for(;h--;)n.lens[n.have++]=w}}if(n.mode===ai)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=ai;break}if(n.lenbits=9,O={bits:n.lenbits},C=Im(1,n.lens,0,n.nlen,n.lencode,0,n.work,O),n.lenbits=O.bits,C){e.msg="invalid literal/lengths set",n.mode=ai;break}if(n.distbits=6,n.distcode=n.distdyn,O={bits:n.distbits},C=Im(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,O),n.distbits=O.bits,C){e.msg="invalid distances set",n.mode=ai;break}if(n.mode=k5,t===R5)break e;case k5:n.mode=x5;case x5:if(a>=6&&c>=258){e.next_out=s,e.avail_out=c,e.next_in=o,e.avail_in=a,n.hold=l,n.bits=u,EUe(e,f),s=e.next_out,i=e.output,c=e.avail_out,o=e.next_in,r=e.input,a=e.avail_in,l=n.hold,u=n.bits,n.mode===Ml&&(n.back=-1);break}for(n.back=0;_=n.lencode[l&(1<>>24,y=_>>>16&255,v=65535&_,!(m<=u);){if(a===0)break e;a--,l+=r[o++]<>E)],m=_>>>24,y=_>>>16&255,v=65535&_,!(E+m<=u);){if(a===0)break e;a--,l+=r[o++]<>>=E,u-=E,n.back+=E}if(l>>>=m,u-=m,n.back+=m,n.length=v,y===0){n.mode=16205;break}if(32&y){n.back=-1,n.mode=Ml;break}if(64&y){e.msg="invalid literal/length code",n.mode=ai;break}n.extra=15&y,n.mode=16201;case 16201:if(n.extra){for(L=n.extra;u>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=16202;case 16202:for(;_=n.distcode[l&(1<>>24,y=_>>>16&255,v=65535&_,!(m<=u);){if(a===0)break e;a--,l+=r[o++]<>E)],m=_>>>24,y=_>>>16&255,v=65535&_,!(E+m<=u);){if(a===0)break e;a--,l+=r[o++]<>>=E,u-=E,n.back+=E}if(l>>>=m,u-=m,n.back+=m,64&y){e.msg="invalid distance code",n.mode=ai;break}n.offset=v,n.extra=15&y,n.mode=16203;case 16203:if(n.extra){for(L=n.extra;u>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=ai;break}n.mode=16204;case 16204:if(c===0)break e;if(h=f-c,n.offset>h){if(h=n.offset-h,h>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=ai;break}h>n.wnext?(h-=n.wnext,p=n.wsize-h):p=n.wnext-h,h>n.length&&(h=n.length),g=n.window}else g=i,p=s-n.offset,h=n.length;h>c&&(h=c),c-=h,n.length-=h;do i[s++]=g[p++];while(--h);n.length===0&&(n.mode=x5);break;case 16205:if(c===0)break e;i[s++]=n.length,c--,n.mode=x5;break;case NE:if(n.wrap){for(;u<32;){if(a===0)break e;a--,l|=r[o++]<aH(e,15),inflateInit2:aH,inflate:RUe,inflateEnd:e=>{if(of(e))return Oa;let t=e.state;return t.window&&(t.window=null),e.state=null,rf},inflateGetHeader:(e,t)=>{if(of(e))return Oa;const n=e.state;return(2&n.wrap)==0?Oa:(n.head=t,t.done=!1,rf)},inflateSetDictionary:(e,t)=>{const n=t.length;let r,i,o;return of(e)?Oa:(r=e.state,r.wrap!==0&&r.mode!==F4?Oa:r.mode===F4&&(i=1,i=Cg(i,t,n,0),i!==r.check)?nee:(o=aee(e,t,n,n),o?(r.mode=16210,ree):(r.havedict=1,rf)))},inflateInfo:"pako inflate (from Nodeca project)"},kUe=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const cee=Object.prototype.toString,{Z_NO_FLUSH:xUe,Z_FINISH:DUe,Z_OK:Pm,Z_STREAM_END:FE,Z_NEED_DICT:UE,Z_STREAM_ERROR:LUe,Z_DATA_ERROR:lH,Z_MEM_ERROR:NUe}=v6;function x3(e){this.options=E6.assign({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits)==0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new eee,this.strm.avail_out=0;let n=$l.inflateInit2(this.strm,t.windowBits);if(n!==Pm)throw new Error(gf[n]);if(this.header=new kUe,$l.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Ig.string2buf(t.dictionary):cee.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=$l.inflateSetDictionary(this.strm,t.dictionary),n!==Pm)))throw new Error(gf[n])}function MUe(e,t){const n=new x3(t);if(n.push(e),n.err)throw n.msg||gf[n.err];return n.result}x3.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let o,s,a;if(this.ended)return!1;for(s=t===~~t?t:t===!0?DUe:xUe,cee.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),o=$l.inflate(n,s),o===UE&&i&&(o=$l.inflateSetDictionary(n,i),o===Pm?o=$l.inflate(n,s):o===lH&&(o=UE));n.avail_in>0&&o===FE&&n.state.wrap>0&&e[n.next_in]!==0;)$l.inflateReset(n),o=$l.inflate(n,s);switch(o){case LUe:case lH:case UE:case NUe:return this.onEnd(o),this.ended=!0,!1}if(a=n.avail_out,n.next_out&&(n.avail_out===0||o===FE))if(this.options.to==="string"){let c=Ig.utf8border(n.output,n.next_out),l=n.next_out-c,u=Ig.buf2string(n.output,c);n.next_out=l,n.avail_out=r-l,l&&n.output.set(n.output.subarray(c,c+l),0),this.onData(u)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(o!==Pm||a!==0){if(o===FE)return o=$l.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},x3.prototype.onData=function(e){this.chunks.push(e)},x3.prototype.onEnd=function(e){e===Pm&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=E6.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var BUe={inflate:MUe};const{deflate:FUe}=yUe,{inflate:UUe}=BUe;var jUe=FUe,HUe=UUe,lee=(function(e){return e[e.ONE_BYTE=0]="ONE_BYTE",e[e.TWO_BYTE=1]="TWO_BYTE",e})(lee||{});class zUe{constructor(){H(this,"_sequence",0),H(this,"_startTime",Date.now()),H(this,"isUseOneByte",!0)}get startTime(){const t=Date.now()-this._startTime;return t128){const a=new Uint8Array(4);a.set([1,0,0,0]);const c={id:0,length:4,data:a.buffer},l={profile:this.isUseOneByte?0:1,length:this.isUseOneByte?5:6,datas:[c]};n.commonPacketHeader.extension=1,n.extension=l,n.payload=this.compress(t),n.commonPacketHeader.length=8+(n.extension.length+2)+n.payload.byteLength}else n.commonPacketHeader.length=8+n.payload.byteLength;he("SHOW_DATASTREAM2_LOG")&&D.debug("send data header: ".concat(JSON.stringify(n.commonPacketHeader)));const r=new ArrayBuffer(n.commonPacketHeader.length),i=new Uint8Array(r),o=new DataView(r);let s=0;if(o.setUint16(s,n.commonPacketHeader.extension<<15|n.commonPacketHeader.reserved<<14|n.commonPacketHeader.length,!0),s+=2,o.setUint32(s,n.commonPacketHeader.sequence,!0),s+=4,o.setUint16(s,n.commonStreamHeader,!0),s+=2,n.extension){const a=this.serializeExtension(n.extension);i.set(new Uint8Array(a),s),s+=a.byteLength}if(i.set(new Uint8Array(n.payload),s),s+=n.payload.byteLength,s!==n.commonPacketHeader.length)throw Error("serialize error!");return r}deserialize(t){if(t.byteLength<4)return new ArrayBuffer(0);const n=new DataView(t);let r=0;const i=n.getUint16(r,!0);r+=2;const o={length:16383&i,reserved:(16384&i)>>14,extension:(32768&i)>>15,sequence:n.getUint16(r+2,!0)<<16|n.getUint16(r,!0)};let s,a;if(r+=4,he("SHOW_DATASTREAM2_LOG")&&D.debug("receive data header: ".concat(JSON.stringify(o))),n.getUint16(r,!0),r+=2,o.extension){a=this.deserializeExtension(t.slice(r)),r+=2+a.length,s=t.slice(r);let c=!1;if(a.datas.length>0){const l=a.datas.find((u=>u.id===0));l&&(c=(1&new DataView(l.data).getUint32(0,!0))==1)}s=c?this.decompress(s):s}else s=t.slice(8);return s}serializeExtension(t){const{profile:n,length:r,datas:i}=t,o=new ArrayBuffer(r+2),s=new Uint8Array(o),a=new DataView(o);let c=0;if(a.setUint8(c++,n),a.setUint8(c++,r),i.forEach((l=>{n?(a.setUint8(c++,l.id),a.setUint8(c++,l.length),s.set(new Uint8Array(l.data),c),c+=l.data.byteLength):(a.setUint8(c++,l.id|l.length<<4),s.set(new Uint8Array(l.data),c),c+=l.data.byteLength)})),c!==r+2)throw Error("serialize extension error, is ".concat(c,"!==").concat(r+2));return o}deserializeExtension(t){const n=new DataView(t);let r=0;const i=n.getUint8(r);r++;const o=n.getUint8(r);r++;const s=i===lee.TWO_BYTE,a=[],c=new DataView(t,2);let l=0;for(;l>4,l++),d>0&&(f=c.buffer.slice(l+2,l+2+d),l+=f.byteLength),a.push({id:u,length:d,data:f})}if(l!==o)throw Error("parse error");return{profile:i,length:o,datas:a}}decompress(t){return HUe(new Uint8Array(t))}compress(t){return jUe(new Uint8Array(t))}}const WUe={name:"DataStream",create:(e,t)=>{const n=t?new PBe(e):new OBe(e);return n.useDataStream(new zUe),n}};class VUe extends fr{constructor(t,n,r){super(),H(this,"ws",void 0),H(this,"requestId",1),H(this,"heartBeatTimer",void 0),H(this,"joinInfo",void 0),H(this,"clientId",void 0),H(this,"onOpen",(()=>{this.emit("open"),this.startHeartBeatCheck()})),H(this,"onClose",(i=>{this.emit("close"),this.dispose()})),H(this,"onMessage",(i=>{const o=JSON.parse(i.data);if(!o||o.command!=="serverResponse"||!o.requestId)return o&&o.command==="serverStatus"&&o.serverStatus&&o.serverStatus.command?(this.emit("status",o.serverStatus),void this.emit(o.serverStatus.command,o.serverStatus)):void 0;this.emit("req_".concat(o.requestId),o)})),this.joinInfo=t,this.clientId=n,this.ws=new dg("cross-channel-".concat(this.clientId),r),this.ws.on(Bt.RECONNECTING,(()=>{this.ws.reconnectMode="retry",this.emit("reconnecting")})),this.ws.on(Bt.CONNECTED,this.onOpen),this.ws.on(Bt.ON_MESSAGE,this.onMessage),this.ws.on(Bt.CLOSED,this.onClose)}isConnect(){return this.ws.state==="connected"}sendMessage(t){const n=this.requestId++;return t.requestId=n,t.seq=n,this.ws.sendMessage(t),n}waitStatus(t){return new ot(((n,r)=>{const i=window.setTimeout((()=>{r(new xe(Q.TIMEOUT,"wait status timeout, status: ".concat(t)))}),5e3);this.once(t,(o=>{window.clearTimeout(i),o.state&&o.state!==0?r(new xe(Q.CROSS_CHANNEL_WAIT_STATUS_ERROR,"wait status error, status: ".concat(t))):n(void 0)})),this.once("dispose",(()=>{window.clearTimeout(i),r(new xe(Q.WS_ABORT))}))}))}async request(t){if(this.ws.state==="closed")throw new xe(Q.WS_DISCONNECT);const n=()=>new ot(((s,a)=>{this.ws.once(Bt.CLOSED,(()=>a(new xe(Q.WS_ABORT)))),this.ws.once(Bt.CONNECTED,s)}));this.ws.state!=="connected"&&await n();const r=this.sendMessage(t),i=new ot(((s,a)=>{const c=()=>{a(new xe(Q.WS_ABORT))};this.ws.once(Bt.RECONNECTING,c),this.ws.once(Bt.CLOSED,c),this.once("req_".concat(r),s),Ei(3e3).then((()=>{this.removeAllListeners("req_".concat(r)),this.ws.off(Bt.RECONNECTING,c),this.ws.off(Bt.CLOSED,c),a(new xe(Q.TIMEOUT,"cross channel ws request timeout"))}))})),o=await i;if(!o||o.code!==200)throw new xe(Q.CROSS_CHANNEL_SERVER_ERROR_RESPONSE,"response: ".concat(JSON.stringify(o)));return o}async connect(t){this.ws.removeAllListeners(Bt.REQUEST_NEW_URLS),this.ws.on(Bt.REQUEST_NEW_URLS,(n=>{n(t)})),await this.ws.init(t)}dispose(){this.clearHeartBeatCheck(),this.emit("dispose"),this.removeAllListeners(),this.ws.close()}sendPing(t){const n=this.requestId++;return t.requestId=n,this.ws.sendMessage(t),n}startHeartBeatCheck(){this.heartBeatTimer&&window.clearInterval(this.heartBeatTimer),this.heartBeatTimer=window.setInterval((()=>{this.sendPing({command:"ping",appId:this.joinInfo.appId,cname:this.joinInfo.cname,uid:this.joinInfo.uid.toString(),sid:this.joinInfo.sid,ts:+new Date,requestId:0})}),3e3)}clearHeartBeatCheck(){window.clearInterval(this.heartBeatTimer),this.heartBeatTimer=void 0}}class GUe extends fr{set state(t){t!==this._state&&(t!==zo.RELAY_STATE_FAILURE&&(this.errorCode=gh.RELAY_OK),this.emit("state",t,this.errorCode),this._state=t)}get state(){return this._state}constructor(t,n,r,i,o){super(),H(this,"joinInfo",void 0),H(this,"sid",void 0),H(this,"clientId",void 0),H(this,"cancelToken",Lo.CancelToken.source()),H(this,"workerToken",void 0),H(this,"requestId",0),H(this,"signal",void 0),H(this,"prevChannelMediaConfig",void 0),H(this,"httpRetryConfig",void 0),H(this,"_resolution",void 0),H(this,"_state",zo.RELAY_STATE_IDLE),H(this,"errorCode",gh.RELAY_OK),H(this,"onStatus",(s=>{D.debug("[".concat(this.clientId,"] ChannelMediaStatus: ").concat(JSON.stringify(s))),s&&s.command&&(s.command==="onAudioPacketReceived"&&this.emit("event",Ul.PACKET_RECEIVED_AUDIO_FROM_SRC),s.command==="onVideoPacketReceived"&&this.emit("event",Ul.PACKET_RECEIVED_VIDEO_FROM_SRC),s.command==="onSrcTokenPrivilegeDidExpire"&&(this.errorCode=gh.SRC_TOKEN_EXPIRED,this.state=zo.RELAY_STATE_FAILURE),s.command==="onDestTokenPrivilegeDidExpire"&&(this.errorCode=gh.DEST_TOKEN_EXPIRED,this.state=zo.RELAY_STATE_FAILURE))})),H(this,"onReconnect",(async()=>{D.debug("[".concat(this.clientId,"] ChannelMediaSocket disconnect, reconnecting")),this.emit("event",Ul.NETWORK_DISCONNECTED),this.state=zo.RELAY_STATE_IDLE,this.prevChannelMediaConfig&&this.sendStartRelayMessage(this.prevChannelMediaConfig).catch((s=>{this.state!==zo.RELAY_STATE_IDLE&&(D.error("auto restart channel media relay failed",s.toString()),this.errorCode=gh.SERVER_CONNECTION_LOST,this.state=zo.RELAY_STATE_FAILURE)}))})),this.joinInfo=t,this.clientId=n,this.sid=Ph(),this.signal=new VUe(this.joinInfo,this.clientId,r),this.httpRetryConfig=i,this._resolution=o}async startChannelMediaRelay(t){if(this.state!==zo.RELAY_STATE_IDLE)throw new xe(Q.INVALID_OPERATION);this.state=zo.RELAY_STATE_CONNECTING,await this.connect(),D.debug("[".concat(this.clientId,"] startChannelMediaRelay: connect success"));try{await this.sendStartRelayMessage(t)}catch(n){throw n.data&&n.data.serverResponse&&n.data.serverResponse.command==="SetSourceChannel"?new xe(Q.CROSS_CHANNEL_FAILED_JOIN_SRC):n.data&&n.data.serverResponse&&n.serverResponse.command==="SetDestChannelStatus"?new xe(Q.CROSS_CHANNEL_FAILED_JOIN_DEST):n.data&&n.data.serverResponse&&n.serverResponse.command==="StartPacketTransfer"?new xe(Q.CROSS_CHANNEL_FAILED_PACKET_SENT_TO_DEST):n}this.prevChannelMediaConfig=t}async updateChannelMediaRelay(t){if(this.state!==zo.RELAY_STATE_RUNNING)throw new xe(Q.INVALID_OPERATION);await this.sendUpdateMessage(t),this.prevChannelMediaConfig=t}async setVideoProfile(t){if(this._resolution=t,this.state!==zo.RELAY_STATE_RUNNING)throw new xe(Q.INVALID_OPERATION);const n=this.genMessage(fo.SetVideoProfile);await this.signal.request(n),D.debug("[".concat(this.clientId,"] startChannelMediaRelay: setVideoProfile success"))}async stopChannelMediaRelay(){await this.sendStopRelayMessage(),D.debug("[".concat(this.clientId,"] stopChannelMediaRelay: send stop message success")),this.state=zo.RELAY_STATE_IDLE,this.dispose()}dispose(){D.debug("[".concat(this.clientId,"] disposeChannelMediaRelay")),this.cancelToken.cancel(),this.cancelToken=Lo.CancelToken.source(),this.state=zo.RELAY_STATE_IDLE,this.emit("dispose"),this.signal.dispose(),this.prevChannelMediaConfig=void 0}async connect(){const t=await UBe(this.joinInfo,this.cancelToken.token,this.httpRetryConfig);this.workerToken=t.workerToken,await this.signal.connect(t.addressList),this.emit("event",Ul.NETWORK_CONNECTED),this.signal.on("status",this.onStatus),this.signal.on("reconnecting",this.onReconnect)}async sendStartRelayMessage(t){const n=this.genMessage(fo.StopPacketTransfer);await this.signal.request(n),await this.signal.waitStatus("Normal Quit"),D.debug("[".concat(this.clientId,"] startChannelMediaRelay: StopPacketTransfer success"));const r=this.genMessage(fo.SetSdkProfile,t);await this.signal.request(r),D.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSdkProfile success"));const i=this.genMessage(fo.SetSourceChannel,t);await this.signal.request(i),await this.signal.waitStatus("SetSourceChannelStatus"),this.emit("event",Ul.PACKET_JOINED_SRC_CHANNEL),D.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSourceChannel success"));const o=this.genMessage(fo.SetSourceUserId,t);await this.signal.request(o),D.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSourceUserId success"));const s=this.genMessage(fo.SetDestChannel,t);await this.signal.request(s),await this.signal.waitStatus("SetDestChannelStatus"),this.emit("event",Ul.PACKET_JOINED_DEST_CHANNEL),D.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetDestChannel success"));const a=this.genMessage(fo.StartPacketTransfer,t);await this.signal.request(a),this.emit("event",Ul.PACKET_SENT_TO_DEST_CHANNEL),this.state=zo.RELAY_STATE_RUNNING,D.debug("[".concat(this.clientId,"] startChannelMediaRelay: StartPacketTransfer success")),this.setVideoProfile(this._resolution)}async sendUpdateMessage(t){const n=this.genMessage(fo.UpdateDestChannel,t);await this.signal.request(n),this.emit("event",Ul.PACKET_UPDATE_DEST_CHANNEL),D.debug("[".concat(this.clientId,"] sendUpdateMessage: UpdateDestChannel success"))}async sendStopRelayMessage(){const t=this.genMessage(fo.StopPacketTransfer);await this.signal.request(t),D.debug("[".concat(this.clientId,"] sendStopRelayMessage: StopPacketTransfer success"))}genMessage(t,n){const r=[],i=[],o=[];this.requestId+=1;const s={appId:this.joinInfo.appId,cname:this.joinInfo.cname,uid:this.joinInfo.uid.toString(),sdkVersion:oa,sid:this.sid,ts:Date.now(),requestId:this.requestId,seq:this.requestId,allocate:!0,clientRequest:{}};s.sdkVersion==="4.22.0"&&(s.sdkVersion="0.0.1");let a=null,c=null;switch(t){case fo.SetSdkProfile:return s.clientRequest={command:"SetSdkProfile",type:"multi_channel"},s;case fo.SetSourceChannel:if(c=n&&n.getSrcChannelMediaInfo(),!c)throw new xe(Q.UNEXPECTED_ERROR,"can not find source config");return s.clientRequest={command:"SetSourceChannel",uid:"0",channelName:c.channelName,token:c.token||this.joinInfo.appId},s;case fo.SetSourceUserId:if(c=n&&n.getSrcChannelMediaInfo(),!c)throw new xe(Q.UNEXPECTED_ERROR,"can not find source config");return s.clientRequest={command:"SetSourceUserId",uid:c.uid+""},s;case fo.SetDestChannel:if(a=n&&n.getDestChannelMediaInfo(),!a)throw new xe(Q.UNEXPECTED_ERROR,"can not find dest config");return a.forEach((l=>{r.push(l.channelName),i.push(l.uid+""),o.push(l.token||this.joinInfo.appId)})),s.clientRequest={command:"SetDestChannel",channelName:r,uid:i,token:o},s;case fo.StartPacketTransfer:return s.clientRequest={command:"StartPacketTransfer"},s;case fo.Reconnect:return s.clientRequest={command:"Reconnect"},s;case fo.StopPacketTransfer:return s.clientRequest={command:"StopPacketTransfer"},s;case fo.UpdateDestChannel:if(a=n&&n.getDestChannelMediaInfo(),!a)throw new xe(Q.UNEXPECTED_ERROR,"can not find dest config");return a.forEach((l=>{r.push(l.channelName),i.push(l.uid+""),o.push(l.token||this.joinInfo.appId)})),s.clientRequest={command:"UpdateDestChannel",channelName:r,uid:i,token:o},s;case fo.SetVideoProfile:s.clientRequest={command:"SetVideoProfile",width:this._resolution.width,height:this._resolution.height}}return s}}const JUe={name:"ChannelMediaRelay",create:function(e){return new GUe(e.joinInfo,e.clientId,e.websocketRetryConfig||jr,e.httpRetryConfig||jr,e.resolution)}};function uH(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable}))),n.push.apply(n,r)}return n}function P1(e){for(var t=1;t{this.reconnectMode="retry",this.startPingPong()})),H(this,"handleWebSocketMessage",(o=>{if(!o.data)return;const s=JSON.parse(o.data);s.requestId?this.emit("@".concat(s.requestId,"-").concat(s.sid),s):(mt.workerEvent(this.spec.sid,{actionType:"status",serverCode:s.code,workerType:this.serviceMode===au.TRANSCODE?1:2}),this.emit(pd.PUBLISH_STREAM_STATUS,s))})),this.spec=n,this.token=t,this.serviceMode=i,this.websocket=new dg("live-streaming",r),this.websocket.on(Bt.CONNECTED,this.handleWebSocketOpen),this.websocket.on(Bt.ON_MESSAGE,this.handleWebSocketMessage),this.websocket.on(Bt.REQUEST_NEW_URLS,((o,s)=>{ki(this,pd.REQUEST_NEW_ADDRESS).then(o).catch(s)})),this.websocket.on(Bt.RECONNECTING,(()=>{this.websocket.reconnectMode=this.reconnectMode}))}init(t){return this.websocket.init(t)}async request(t,n,r,i){this.reqId+=1,t==="request"&&(this.commandReqId+=1);const o=this.commandReqId,s=this.reqId;if(!s||!this.websocket)throw new xe(Q.UNEXPECTED_ERROR);const a=P1({command:t,sdkVersion:oa==="4.22.0"?"0.0.1":oa,seq:s,requestId:s,allocate:r,cname:this.spec.cname,appId:this.spec.appId,sid:this.spec.sid,uid:this.spec.uid.toString(),ts:Math.floor(Date.now()/1e3)},n);if(this.websocket.state==="closed")throw new xe(Q.WS_DISCONNECT);const c=()=>new ot(((f,h)=>{this.websocket.once(Bt.CLOSED,(()=>h(new xe(Q.WS_ABORT)))),this.websocket.once(Bt.CONNECTED,f)}));this.websocket.state!=="connected"&&await c(),a.clientRequest&&(a.clientRequest.workerToken=this.token);const l=new ot(((f,h)=>{const p=()=>{h(new xe(Q.WS_ABORT))};this.websocket.once(Bt.RECONNECTING,p),this.websocket.once(Bt.CLOSED,p),this.once("@".concat(s,"-").concat(this.spec.sid),(g=>{f(g)}))}));i&&mt.workerEvent(this.spec.sid,P1(P1({},i),{},{requestId:o,actionType:"request",payload:JSON.stringify(n.clientRequest),serverCode:0,code:0}));const u=Date.now();this.websocket.sendMessage(a);let d=null;try{d=await l}catch(f){if(this.websocket.state==="closed")throw f;return await c(),await this.request(t,n,r)}return i&&mt.workerEvent(this.spec.sid,P1(P1({},i),{},{requestId:o,actionType:"response",payload:JSON.stringify(d.serverResponse),serverCode:d.code,success:d.code===200,responseTime:Date.now()-u})),d.code!==200&&this.handleResponseError(d),d}tryNextAddress(){this.reconnectMode="tryNext",this.websocket.reconnect("tryNext")}close(){const t=oa==="4.22.0"?"0.0.1":oa;this.reqId+=1,this.websocket.state==="connected"?(this.websocket.sendMessage({command:"request",appId:this.spec.appId,cname:this.spec.cname,uid:this.spec.uid.toString(),sdkVersion:t,sid:this.spec.sid,seq:this.reqId,ts:Math.floor(Date.now()/1e3),requestId:this.reqId,clientRequest:{command:"DestroyWorker"}}),this.websocket.close(!1,!0)):this.websocket.close(!1),this.pingpongTimer&&(window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0)}handleResponseError(t){switch(t.code){case Gr.LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM:return void D.warning("live stream response already exists stream");case Gr.LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR:case Gr.LIVE_STREAM_RESPONSE_BAD_STREAM:case Gr.LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR:return new xe(Q.LIVE_STREAMING_INVALID_ARGUMENT,"",{code:t.code}).throw();case Gr.LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST:if(t.serverResponse.command==="UnpublishStream")return;throw new xe(Q.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream response wm worker not exist",{retry:!0});case Gr.LIVE_STREAM_RESPONSE_NOT_AUTHORIZED:return new xe(Q.LIVE_STREAMING_PUBLISH_STREAM_NOT_AUTHORIZED,"",{code:t.code}).throw();case Gr.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE:{const n=new xe(Q.LIVE_STREAMING_WARN_FAILED_LOAD_IMAGE);return this.emit(pd.WARNING,n,t.serverResponse.url)}case Gr.LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN:{const n=new xe(Q.LIVE_STREAMING_WARN_FREQUENT_REQUEST);return this.emit(pd.WARNING,n,t.serverResponse.url)}case Gr.LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH:throw new xe(Q.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream response wm worker not exist",{retry:!0});case Gr.LIVE_STREAM_RESPONSE_NOT_SUPPORTED:return new xe(Q.LIVE_STREAMING_TRANSCODING_NOT_SUPPORTED,"",{code:t.code}).throw();case Gr.LIVE_STREAM_RESPONSE_MAX_STREAM_NUM:{const n=new xe(Q.LIVE_STREAMING_WARN_STREAM_NUM_REACH_LIMIT);return this.emit(pd.WARNING,n,t.serverResponse.url)}case Gr.LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR:return new xe(Q.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"",{code:t.code}).throw();case Gr.LIVE_STREAM_RESPONSE_RESOURCE_LIMIT:throw new xe(Q.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream resource limit",{retry:!0,changeAddress:!0});case Gr.LIVE_STREAM_RESPONSE_WORKER_LOST:case Gr.LIVE_STREAM_RESPONSE_WORKER_QUIT:if(t.serverResponse.command==="UnpublishStream")return;throw new xe(Q.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{retry:!0,changeAddress:!0});case Gr.ERROR_FAIL_SEND_MESSAGE:if(t.serverResponse.command==="UnpublishStream")return;if(t.serverResponse.command==="UpdateTranscoding"||t.serverResponse.command==="ControlStream")return new xe(Q.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{code:t.code}).throw();throw new xe(Q.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{retry:!0,changeAddress:!0});case Gr.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN:case Gr.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT:case Gr.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE:case Gr.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH:return new xe(Q.LIVE_STREAMING_CDN_ERROR,"",{code:t.code}).throw()}}startPingPong(){this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval((()=>{this.websocket.state==="connected"&&this.request("ping",{}).catch(d6)}),6e3)}}function dH(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable}))),n.push.apply(n,r)}return n}function Uo(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:jr,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:jr;super(),H(this,"onLiveStreamWarning",void 0),H(this,"onLiveStreamError",void 0),H(this,"spec",void 0),H(this,"retryTimeout",1e4),H(this,"connection",void 0),H(this,"httpRetryConfig",void 0),H(this,"wsRetryConfig",void 0),H(this,"streamingTasks",new Map),H(this,"isStartingStreamingTask",!1),H(this,"taskMutex",new Hi("live-streaming")),H(this,"cancelToken",Lo.CancelToken.source()),H(this,"transcodingConfig",void 0),H(this,"uapResponse",void 0),H(this,"lastTaskId",1),H(this,"statusError",new Map),this.spec=t,this.httpRetryConfig=r,this.wsRetryConfig=n}async setTranscodingConfig(t){const n=Uo(Uo({},GNe),t);n.videoCodecProfile!==66&&n.videoCodecProfile!==77&&n.videoCodecProfile!==100&&(D.debug("[".concat(this.spec.clientId,"] set transcoding config, fix video codec profile: ").concat(n.videoCodecProfile," -> 100")),n.videoCodecProfile=100),n.transcodingUsers||(n.transcodingUsers=n.userConfigs),n.transcodingUsers&&(n.transcodingUsers=n.transcodingUsers.map((s=>Uo(Uo(Uo({},VNe),s),{},{zOrder:s.zOrder?s.zOrder+1:1})))),(function(s){ur(s.width)||Ln(s.width,"config.width",0,1e4),ur(s.height)||Ln(s.height,"config.height",0,1e4),ur(s.videoBitrate)||Ln(s.videoBitrate,"config.videoBitrate",1,1e6),ur(s.videoFrameRate)||Ln(s.videoFrameRate,"config.videoFrameRate"),ur(s.lowLatency)||nu(s.lowLatency,"config.lowLatency"),ur(s.audioSampleRate)||Kr(s.audioSampleRate,"config.audioSampleRate",[32e3,44100,48e3]),ur(s.audioBitrate)||Ln(s.audioBitrate,"config.audioBitrate",1,128),ur(s.audioChannels)||Kr(s.audioChannels,"config.audioChannels",[1,2,3,4,5]),ur(s.videoGop)||Ln(s.videoGop,"config.videoGop"),ur(s.videoCodecProfile)||Kr(s.videoCodecProfile,"config.videoCodecProfile",[66,77,100]),ur(s.userCount)||Ln(s.userCount,"config.userCount",0,17),ur(s.backgroundColor)||Ln(s.backgroundColor,"config.backgroundColor",0,16777215),ur(s.userConfigExtraInfo)||pi(s.userConfigExtraInfo,"config.userConfigExtraInfo",0,4096,!1),s.transcodingUsers&&!ur(s.transcodingUsers)&&(Zl(s.transcodingUsers,"config.transcodingUsers"),s.transcodingUsers.forEach(((a,c)=>{p6(a.uid),ur(a.x)||Ln(a.x,"transcodingUser[".concat(c,"].x"),0,1e4),ur(a.y)||Ln(a.y,"transcodingUser[".concat(c,"].y"),0,1e4),ur(a.width)||Ln(a.width,"transcodingUser[".concat(c,"].width"),0,1e4),ur(a.height)||Ln(a.height,"transcodingUser[".concat(c,"].height"),0,1e4),ur(a.zOrder)||Ln(a.zOrder-1,"transcodingUser[".concat(c,"].zOrder"),0,100),ur(a.alpha)||Ln(a.alpha,"transcodingUser[".concat(c,"].alpha"),0,1,!1)}))),ur(s.watermark)||z9(s.watermark,"watermark"),ur(s.backgroundImage)||z9(s.backgroundImage,"backgroundImage"),s.images&&!ur(s.images)&&(Zl(s.images,"config.images"),s.images.forEach(((a,c)=>{z9(a,"images[".concat(c,"]"))})))})(n);const r=[];n.images&&r.push(...n.images.map((s=>Uo(Uo(Uo({},H9),s),{},{zOrder:255})))),n.backgroundImage&&(r.push(Uo(Uo(Uo({},H9),n.backgroundImage),{},{zOrder:0})),delete n.backgroundImage),n.watermark&&(r.push(Uo(Uo(Uo({},H9),n.watermark),{},{zOrder:255})),delete n.watermark),n.images=r,n.transcodingUsers&&(n.userConfigs=n.transcodingUsers.map((s=>Uo({},s))),n.userCount=n.transcodingUsers.length,delete n.transcodingUsers);const i=(n.userConfigs||[]).map((s=>typeof s.uid=="number"?ot.resolve(s.uid):y$(s.uid,this.spec,this.cancelToken.token,this.httpRetryConfig)));if((await ot.all(i)).forEach(((s,a)=>{n.userConfigs&&n.userConfigs[a]&&(n.userConfigs[a].uid=s)})),this.transcodingConfig=n,this.connection)try{var o;const s=await this.connection.request("request",{clientRequest:{command:"UpdateTranscoding",transcodingConfig:this.transcodingConfig}},!1,{command:"UpdateTranscoding",workerType:1,requestByUser:!0,tid:Array.from(pu(o=this.streamingTasks).call(o)).map((a=>a.taskId)).join("#")});D.debug("[".concat(this.spec.clientId,"] update live transcoding config success, code: ").concat(s.code,", config:"),JSON.stringify(this.transcodingConfig))}catch(s){if(!s.data||!s.data.retry)throw s;s.data.changeAddress&&this.connection.tryNextAddress(),this.streamingTasks.forEach((a=>{D.warning("[".concat(this.spec.clientId,"] live streaming receive error"),s.toString(),"try to republish",a.url),this.startLiveStreamingTask(a.url,a.mode,s).then((()=>{D.debug("[".concat(this.spec.clientId,"] live streaming republish ").concat(a.url," success"))})).catch((c=>{D.error("[".concat(this.spec.clientId,"] live streaming republish failed"),a.url,c.toString()),this.onLiveStreamError&&this.onLiveStreamError(a.url,c)}))}))}}async startLiveStreamingTask(t,n,r){if(!this.transcodingConfig&&n===au.TRANSCODE)throw new xe(Q.INVALID_OPERATION,"[LiveStreaming] no transcoding config found, can not start transcoding streaming task");const i={command:"PublishStream",ts:Date.now(),url:t,uid:this.spec.uid.toString(),autoDestroyTime:100,acceptImageTimeout:!0};D.debug("[".concat(this.spec.clientId,"] start live streaming ").concat(t,", mode: ").concat(n));const o=await this.taskMutex.lock();if(!this.connection&&r)return void o();if(this.streamingTasks.get(t)&&!r)return o(),new xe(Q.LIVE_STREAMING_TASK_CONFLICT).throw();try{this.connection||(this.connection=await this.connect(n))}catch(a){throw o(),a}switch(n){case au.TRANSCODE:i.transcodingConfig=Uo({},this.transcodingConfig)}this.uapResponse&&this.uapResponse.vid&&(i.vid=this.uapResponse.vid),this.isStartingStreamingTask=!0;const s=this.lastTaskId++;try{const a=new ot(((l,u)=>{Ei(this.retryTimeout).then((()=>{if(r)return u(r);const d=this.statusError.get(t);return d?(this.statusError.delete(t),u(d)):void 0}))})),c=await ot.race([this.connection.request("request",{clientRequest:i},!0,{url:t,command:"PublishStream",workerType:n===au.TRANSCODE?1:2,requestByUser:!r,tid:s.toString()}),a]);this.isStartingStreamingTask=!1,D.debug("[".concat(this.spec.clientId,"] live streaming started, code: ").concat(c.code)),this.streamingTasks.set(t,{clientRequest:i,mode:n,url:t,taskId:s}),o()}catch(a){if(o(),this.isStartingStreamingTask=!1,!a.data||!a.data.retry||r)throw a;return a.data.changeAddress?(this.connection.tryNextAddress(),await this.startLiveStreamingTask(t,n,a)):await this.startLiveStreamingTask(t,n,a)}}stopLiveStreamingTask(t){return new ot(((n,r)=>{const i=this.streamingTasks.get(t);if(!i||!this.connection)return new xe(Q.UNEXPECTED_ERROR,"can not find streaming task to stop").throw();const o=i.mode;i.abortTask=()=>{D.debug("[".concat(this.spec.clientId,"] stop live streaming success(worker exception)")),this.streamingTasks.delete(t),n()},this.connection.request("request",{clientRequest:{command:"UnpublishStream",url:i.url}},!1,{url:t,command:"UnPublishStream",workerType:o===au.TRANSCODE?1:2,requestByUser:!0,tid:(this.lastTaskId++).toString()}).then((s=>{D.debug("[".concat(this.spec.clientId,"] stop live streaming success, code: ").concat(s.code)),this.streamingTasks.delete(t),this.streamingTasks.size===0&&(this.connection&&this.connection.close(),this.connection=void 0),n()})).catch(r)}))}resetAllTask(){var t;const n=Array.from(pu(t=this.streamingTasks).call(t));this.terminate();for(const r of n)this.startLiveStreamingTask(r.url,r.mode).catch((i=>{this.onLiveStreamError&&this.onLiveStreamError(r.url,i)}))}terminate(){this.cancelToken&&this.cancelToken.cancel(),this.streamingTasks=new Map,this.isStartingStreamingTask=!1,this.statusError=new Map,this.cancelToken=Lo.CancelToken.source(),this.uapResponse=void 0,this.connection&&this.connection.close(),this.connection=void 0}async connect(t){if(this.connection)throw new xe(Q.UNEXPECTED_ERROR,"live streaming connection has already connected");const n=await ki(this,XA.REQUEST_WORKER_MANAGER_LIST,t);return this.uapResponse=n,this.connection=new ZUe(n.workerToken,this.spec,this.wsRetryConfig,t),this.connection.on(pd.WARNING,((r,i)=>this.onLiveStreamWarning&&this.onLiveStreamWarning(i,r))),this.connection.on(pd.PUBLISH_STREAM_STATUS,(r=>this.handlePublishStreamServer(r))),this.connection.on(pd.REQUEST_NEW_ADDRESS,((r,i)=>{if(!this.connection)return i(new xe(Q.UNEXPECTED_ERROR,"can not get new live streaming address list"));ki(this,XA.REQUEST_WORKER_MANAGER_LIST,t).then((o=>{this.uapResponse=o,r(o.addressList)})).catch(i)})),await this.connection.init(n.addressList),this.connection}handlePublishStreamServer(t){const n=t.serverStatus&&t.serverStatus.url||"empty_url",r=this.streamingTasks.get(n),i=t.reason;switch(t.code){case Gr.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN:case Gr.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT:case Gr.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE:case Gr.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH:{const s=new xe(Q.LIVE_STREAMING_CDN_ERROR,"",{code:t.code});if(r)return D.error(s.toString()),this.onLiveStreamError&&this.onLiveStreamError(n,s);if(!this.isStartingStreamingTask)return;this.statusError.set(n,s)}case Gr.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE:{const s=new xe(Q.LIVE_STREAMING_WARN_FAILED_LOAD_IMAGE,i);return this.onLiveStreamWarning&&this.onLiveStreamWarning(n,s)}case Gr.LIVE_STREAM_RESPONSE_WORKER_LOST:case Gr.LIVE_STREAM_RESPONSE_WORKER_QUIT:{var o;if(!this.connection)return;this.connection.tryNextAddress();const s=Array.from(pu(o=this.streamingTasks).call(o));for(const a of s)a.abortTask?a.abortTask():(D.warning("[".concat(this.spec.clientId,"] publish stream status code"),t.code,"try to republish",a.url),this.startLiveStreamingTask(a.url,a.mode,new xe(Q.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"",{code:t.code})).then((()=>{D.debug("[".concat(this.spec.clientId,"] republish live stream success"),a.url)})).catch((c=>{D.error(c.toString()),this.onLiveStreamError&&this.onLiveStreamError(a.url,c)})));return}}}hasUrl(t){return this.streamingTasks.has(t)}}const XUe={name:"LiveStreaming",create:function(e){return new YUe(e.joinInfo,e.websocketRetryConfig||jr,e.httpRetryConfig||jr)}};function QUe(e){let t=fH();return(function(n,r){let i=n.appId;i!==void 0&&(wn(r,10),jc(r,i));let o=n.cid;o!==void 0&&(wn(r,16),wn(r,o));let s=n.cname;s!==void 0&&(wn(r,26),jc(r,s));let a=n.deviceId;a!==void 0&&(wn(r,34),jc(r,a));let c=n.elapse;c!==void 0&&(wn(r,40),Qu(r,c));let l=n.fileSize;l!==void 0&&(wn(r,48),Qu(r,oh(l)));let u=n.height;u!==void 0&&(wn(r,56),Qu(r,oh(u)));let d=n.jpg;d!==void 0&&(wn(r,66),wn(r,d.length),(function(Y,M){let B=n1(Y,M.length);Y.bytes.set(M,B)})(r,d));let f=n.networkType;f!==void 0&&(wn(r,72),Qu(r,oh(f)));let h=n.osType;h!==void 0&&(wn(r,80),Qu(r,oh(h)));let p=n.requestId;p!==void 0&&(wn(r,90),jc(r,p));let g=n.sdkVersion;g!==void 0&&(wn(r,98),jc(r,g));let m=n.sequence;m!==void 0&&(wn(r,104),Qu(r,oh(m)));let y=n.sid;y!==void 0&&(wn(r,114),jc(r,y));let v=n.timestamp;v!==void 0&&(wn(r,120),Qu(r,v));let E=n.uid;E!==void 0&&(wn(r,128),wn(r,E));let b=n.vid;b!==void 0&&(wn(r,136),wn(r,b));let S=n.width;S!==void 0&&(wn(r,144),Qu(r,oh(S)));let w=n.service;w!==void 0&&(wn(r,152),wn(r,w));let C=n.callbackData;C!==void 0&&(wn(r,162),jc(r,C));let _=n.jpgEncryption;_!==void 0&&(wn(r,168),wn(r,_));let I=n.requestType;I!==void 0&&(wn(r,176),wn(r,I));let O=n.scorePorn;O!==void 0&&(wn(r,185),zE(r,O));let L=n.scoreSexy;L!==void 0&&(wn(r,193),zE(r,L));let R=n.scoreNeutral;R!==void 0&&(wn(r,201),zE(r,R));let F=n.scene;F!==void 0&&(wn(r,208),wn(r,F));let W=n.ossFilePrefix;W!==void 0&&(wn(r,218),jc(r,W));let J=n.serviceVendor;if(J!==void 0)for(let Y of J){wn(r,226);let M=fH();$Ue(Y,M),wn(r,M.limit),rje(r,M),nje(M)}})(e,t),(function(n){let r=n.bytes,i=n.limit;return r.length===i?r:r.subarray(0,i)})(t)}function KUe(e){return(function(n){let r={};e:for(;!fee(n);){let i=Yc(n);switch(i>>>3){case 0:break e;case 1:r.code=Yc(n);break;case 2:r.msg=hee(n,Yc(n));break;case 3:{let o=eje(n);r.data=qUe(n),n.limit=o;break}default:uee(n,7&i)}}return r})({bytes:t=e,offset:0,limit:t.length});var t}function qUe(e){let t={};e:for(;!fee(e);){let n=Yc(e);switch(n>>>3){case 0:break e;case 1:t.requestId=hee(e,Yc(e));break;case 2:t.requestType=Yc(e)>>>0;break;case 3:t.scorePorn=HE(e);break;case 4:t.scoreSexy=HE(e);break;case 5:t.scoreNeutral=HE(e);break;case 6:t.requestScene=Yc(e)>>>0;break;case 7:t.scene=Yc(e)>>>0;break;default:uee(e,7&n)}}return t}function $Ue(e,t){let n=e.service;n!==void 0&&(wn(t,8),wn(t,n));let r=e.vendor;r!==void 0&&(wn(t,16),wn(t,r));let i=e.token;i!==void 0&&(wn(t,26),jc(t,i));let o=e.callbackUrl;o!==void 0&&(wn(t,34),jc(t,o))}function eje(e){let t=Yc(e),n=e.limit;return e.limit=e.offset+t,n}function uee(e,t){switch(t){case 0:for(;128&pee(e););break;case 2:jE(e,Yc(e));break;case 5:jE(e,4);break;case 1:jE(e,8);break;default:throw new Error("Unimplemented type: "+t)}}let tje=new Float32Array(1);new Uint8Array(tje.buffer);let NI=new Float64Array(1),Jo=new Uint8Array(NI.buffer);function oh(e){return{low:e|=0,high:e>>31,unsigned:e>=0}}let dee=[];function fH(){const e=dee.pop();return e?(e.offset=e.limit=0,e):{bytes:new Uint8Array(64),offset:0,limit:0}}function nje(e){dee.push(e)}function jE(e,t){if(e.offset+t>e.limit)throw new Error("Skip past limit");e.offset+=t}function fee(e){return e.offset>=e.limit}function n1(e,t){let n=e.bytes,r=e.offset,i=e.limit,o=r+t;if(o>n.length){let s=new Uint8Array(2*o);s.set(n),e.bytes=s}return e.offset=o,o>i&&(e.limit=o),r}function MI(e,t){let n=e.offset;if(n+t>e.limit)throw new Error("Read past limit");return e.offset+=t,n}function hee(e,t){let n=MI(e,t),r=String.fromCharCode,i=e.bytes,o="�",s="";for(let a=0;a=t?s+=o:(c=i[a+n+1],(192&c)!=128?s+=o:(d=(31&f)<<6|63&c,d<128?s+=o:(s+=r(d),a++))):(240&f)==224?a+2>=t?s+=o:(c=i[a+n+1],l=i[a+n+2],(49344&(c|l<<8))!=32896?s+=o:(d=(15&f)<<12|(63&c)<<6|63&l,d<2048||d>=55296&&d<=57343?s+=o:(s+=r(d),a+=2))):(248&f)==240?a+3>=t?s+=o:(c=i[a+n+1],l=i[a+n+2],u=i[a+n+3],(12632256&(c|l<<8|u<<16))!=8421504?s+=o:(d=(7&f)<<18|(63&c)<<12|(63&l)<<6|63&u,d<65536||d>1114111?s+=o:(d-=65536,s+=r(55296+(d>>10),56320+(1023&d)),a+=3))):s+=o}return s}function jc(e,t){let n=t.length,r=0;for(let s=0;s=55296&&a<=56319&&s+1=55296&&a<=56319&&s+1>6&31|192:(a<65536?o[i++]=a>>12&15|224:(o[i++]=a>>18&7|240,o[i++]=a>>12&63|128),o[i++]=a>>6&63|128),o[i++]=63&a|128)}}function rje(e,t){let n=n1(e,t.limit),r=e.bytes,i=t.bytes;for(let o=0,s=t.limit;o>>=0;t>=128;)hH(e,127&t|128),t>>>=7;hH(e,t)}function Qu(e,t){let n=t.low>>>0,r=(t.low>>>28|t.high<<4)>>>0,i=t.high>>>24,o=i===0?r===0?n<16384?n<128?1:2:n<1<<21?3:4:r<16384?r<128?5:6:r<1<<21?7:8:i<128?9:10,s=n1(e,o),a=e.bytes;switch(o){case 10:a[s+9]=i>>>7&1;case 9:a[s+8]=o!==9?128|i:127&i;case 8:a[s+7]=o!==8?r>>>21|128:r>>>21&127;case 7:a[s+6]=o!==7?r>>>14|128:r>>>14&127;case 6:a[s+5]=o!==6?r>>>7|128:r>>>7&127;case 5:a[s+4]=o!==5?128|r:127&r;case 4:a[s+3]=o!==4?n>>>21|128:n>>>21&127;case 3:a[s+2]=o!==3?n>>>14|128:n>>>14&127;case 2:a[s+1]=o!==2?n>>>7|128:n>>>7&127;case 1:a[s]=o!==1?128|n:127&n}}function pH(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable}))),n.push.apply(n,r)}return n}const ije=new Map([["moderation",1],["supervise",2]]);function mH(e){return{low:e|=0,high:e>>31,unsigned:e>=0}}class oje extends fr{get connectionState(){return this._connectionState}set connectionState(t){if(this._connectionState===t)return;const n=this._connectionState;this._connectionState=t,this.emit(ci.CONNECTION_STATE_CHANGE,n,t)}get inspectType(){return this._inspectType}set inspectType(t){var n;this._inspectMode=vc(n=t.map((r=>ije.get(r)||0))).call(n,((r,i)=>r+i)),this._inspectType=t}get quality(){return this._quality}set quality(t){this._quality=t>1?1:t<.1?.1:t,this.qualityTimer&&(window.clearTimeout(this.qualityTimer),this.qualityTimer=null),this._quality>=1||(this.qualityTimer=window.setTimeout((()=>{this.quality=this._quality/this.qualityRatio}),6e4))}constructor(t){super(),H(this,"name","AgoraRTCVideoContentInspect"),H(this,"_connectionState",ba.CONNECTING),H(this,"_innerConnectionState",void 0),H(this,"sequence",0),H(this,"inspectStartTime",void 0),H(this,"workerManagerConnection",void 0),H(this,"workerConnection",void 0),H(this,"workerMessageLengthLimit",void 0),H(this,"inspectIntervalMinimum",void 0),H(this,"qualityRatio",void 0),H(this,"_connectInfo",void 0),H(this,"_cancelTokenSource",Lo.CancelToken.source()),H(this,"_retryConfig",void 0),H(this,"wmSequence",0),H(this,"inspectInterval",void 0),H(this,"inspectTimer",null),H(this,"ossFilePrefix",void 0),H(this,"extraInfo",void 0),H(this,"_inspectType",void 0),H(this,"_inspectMode",void 0),H(this,"_quality",1),H(this,"qualityTimer",null),H(this,"_inspectId",void 0),H(this,"_needWorkUrlOnly",!1),H(this,"inspectImage",(()=>{if(this.connectionState!==ba.CONNECTED)throw new xe(Q.OPERATION_ABORTED,"content inspect service connection status is ".concat(this.connectionState));this.inspectTimer&&(window.clearInterval(this.inspectTimer),this.inspectTimer=null),this.inspectTimer=window.setInterval((()=>{this.connectionState===ba.CONNECTED?this.requestToInspectImage():D.debug("[".concat(this._inspectId,"] Inspect State is not connected , "),this.connectionState)}),this.inspectInterval{this._innerConnectionState=n,D.debug("[".concat(this._inspectId,"] Inspect operation :").concat(pa[n]," ").concat(r||""))})),this.handleWorkerManagerEvents(),this.workerConnection=new dg("worker-"+this._inspectId,jr),this.handleWorkerEvents()}async init(t,n){this.emit(ci.STATE_CHANGE,pa.CONNECT_AP),this._connectInfo=t;const r=this._cancelTokenSource.token;return this._retryConfig=n,new ot(((i,o)=>{this.on(ci.CONNECTION_STATE_CHANGE,((s,a)=>{a===ba.CONNECTED&&i()})),this.requestAP(t,r,n).then((s=>{this.connectWorkerManager(s)})).catch((s=>{o(s)}))}))}async requestAP(t,n,r){const i=he("WEBCS_DOMAIN").map((a=>"https://".concat(a,"/api/v1"))),o=await(function(a,c,l,u){let{appId:d,areaCode:f,cname:h,sid:p,token:g,uid:m}=c;Zh++;const y="image_moderation_api",v={service_name:y,json_body:JSON.stringify({appId:d,areaCode:f,cname:h,command:"allocateEdge",requestId:Zh,seq:Zh,sid:p,token:g,ts:Date.now(),uid:m+""})};let E,b,S=a[0];return wc((async()=>{E=Date.now();const w=await Tc(S,{data:v,cancelToken:l,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"},params:{action:"wrtc_gateway"}});if(b=Date.now()-E,w.code!==0){const O=new xe(Q.UNEXPECTED_RESPONSE,"image inspect ap error, code"+w.code,{retry:!0,responseTime:b});throw D.error(O.toString()),O}const C=JSON.parse(w.json_body);if(C.code!==200){const O=new xe(Q.UNEXPECTED_RESPONSE,"image inspect ap error, code: ".concat(C.code,", reason: ").concat(C.reason),{code:C.code,responseTime:b});throw D.error(O.toString()),O}if(!C.servers||!Array.isArray(C.servers)||C.servers.length===0){const O=new xe(Q.UNEXPECTED_RESPONSE,"image inspect ap empty server",{code:C.code,responseTime:b});throw D.error(O.toString()),O}const _=he("VIDEO_INSPECT_WORKER_MANAGER_HOST"),I=he("VIDEO_INSPECT_WORKER_MANAGER_PORT");return{addressList:C.servers.map((O=>{let{address:L,wss:R}=O;if(L&&R)return"wss://".concat(L.replace(/\./g,"-"),".").concat(_,":").concat(I||R)})).filter((O=>!!O)),workerToken:C.workerToken,vid:C.vid,responseTime:b}}),((w,C)=>(mt.apworkerEvent(p,{success:!0,sc:200,serviceName:y,responseDetail:JSON.stringify(w.addressList),firstSuccess:C===0,responseTime:b,serverIp:a[C%a.length]}),!1)),((w,C)=>(mt.apworkerEvent(p,{success:!1,sc:w.data&&w.data.code||200,serviceName:y,responseTime:b,serverIp:a[C%a.length]}),!!(w.code!==Q.OPERATION_ABORTED&&w.code!==Q.UNEXPECTED_RESPONSE||w.data&&w.data.retry)&&(S=a[(C+1)%a.length],!0))),u)})(i,t,n,r);this.emit(ci.STATE_CHANGE,pa.AP_CONNECTED);const{addressList:s}=o;return this.wmSequence++,s}async connectWorkerManager(t){let n=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this._needWorkUrlOnly=n,this.emit(ci.STATE_CHANGE,pa.CONNECT_WORKER_MANAGER),await this.workerManagerConnection.init(t,1e4)}async connectWorker(t){await this.workerConnection.init([t])}handleWorkerManagerEvents(){this.workerManagerConnection.on(Bt.CONNECTED,(async()=>{this.emit(ci.STATE_CHANGE,pa.WORKER_MANAGER_CONNECTED,this.workerManagerConnection.url),this.workerManagerConnection.sendMessage({appId:this._connectInfo.appId,cname:this._connectInfo.cname,uid:this._connectInfo.uid+"",sdkVersion:"4.22.0",sid:this._connectInfo.sid,seq:this.wmSequence,ts:Number(Date.now()),requestId:Math.floor(1e12*Math.random()),allocate:!0,clientRequest:{command:"join"}},!0)})),this.workerManagerConnection.on(Bt.CLOSED,(()=>{this._innerConnectionState{this._innerConnectionState{this._innerConnectionState{this.emit(ci.STATE_CHANGE,pa.GET_WORKER_MANAGER_RESPONSE);const n=this.workerManagerConnection.url;this.workerManagerConnection.close();const r=JSON.parse(t.data);if(r.code!==200)throw D.error("[".concat(this._inspectId,"] Unexpected code ").concat(r.code," from worker manager")),new xe(Q.UNEXPECTED_RESPONSE,"response code of worker is unexpected",r);if(!(r.serverResponse&&r.serverResponse.portWss&&n))throw D.error("[".concat(this._inspectId,"] Unexpected content from worker manager : ").concat(JSON.stringify(r))),new xe(Q.UNEXPECTED_RESPONSE,"response content of worker is unexpected",r);{const i=he("VIDEO_INSPECT_WORKER_PORT")||r.serverResponse.portWss,o=n.replace(/:\d+\/?$/,":".concat(i));this.emit(ci.STATE_CHANGE,pa.CONNECT_WORKER,o),this._needWorkUrlOnly?this.emit(ci.REQUEST_NEW_WORKER_URL,o):await this.connectWorker(o)}})),this.workerManagerConnection.on(Bt.WILL_RECONNECT,((t,n,r)=>{r(t)})),this.workerManagerConnection.on(Bt.REQUEST_NEW_URLS,((t,n)=>{this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(t).catch(n)}))}handleWorkerEvents(){this.workerConnection.on(Bt.CONNECTED,(async()=>{this.emit(ci.STATE_CHANGE,pa.WORKER_CONNECTED,this.workerConnection.url),this.connectionState=ba.CONNECTED})),this.workerConnection.on(Bt.ON_MESSAGE,(async t=>{if(t.data instanceof ArrayBuffer){const r=KUe(new Uint8Array(t.data));if(he("SHOW_VIDEO_INSPECT_WORKER_MESSAGE")&&D.debug("[".concat(this._inspectId,"] Response message for worker of inspect content "),JSON.stringify(r)),r.code===200){if(Array.isArray(this.inspectType)&&this.inspectType.length===1&&this.inspectType[0]==="supervise")return void this.emit(ci.INSPECT_RESULT,void 0,void 0);if(r.data&&r.data.scorePorn&&r.data.scoreSexy&&r.data.scoreNeutral){var n;const i={porn:r.data.scorePorn,sexy:r.data.scoreSexy,neutral:r.data.scoreNeutral},o=vc(n=Object.keys(i)).call(n,((a,c)=>i[a]>i[c]?a:c),"porn"),s=Object.keys(i).find((a=>a===o));this.emit(ci.INSPECT_RESULT,s)}else this.emit(ci.INSPECT_RESULT,void 0,new xe(Q.UNEXPECTED_RESPONSE,r.code+"","There is an unexpected data on message"))}else this.emit(ci.INSPECT_RESULT,void 0,new xe(Q.UNEXPECTED_RESPONSE,r.code+"",r.msg))}else D.error("[".concat(this._inspectId,"] Unexpected message type from worker")),this.emit(ci.INSPECT_RESULT,void 0,new xe(Q.UNEXPECTED_RESPONSE,"invalid worker message type"))})),this.workerConnection.on(Bt.CLOSED,(()=>{this.connectionState=ba.CLOSED})),this.workerConnection.on(Bt.FAILED,(()=>{this.connectionState=ba.CLOSED})),this.workerConnection.on(Bt.RECONNECTING,(()=>{this.connectionState=this.connectionState===ba.CONNECTED?ba.RECONNECTING:ba.CONNECTING})),this.workerConnection.on(Bt.WILL_RECONNECT,((t,n,r)=>{t==="recover"&&r(t),r("tryNext")})),this.workerConnection.on(Bt.REQUEST_NEW_URLS,((t,n)=>{this.workerManagerConnection.close(),this.once(ci.REQUEST_NEW_WORKER_URL,(r=>{t([r])})),this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then((r=>{this.connectWorkerManager(r,!0)})).catch((r=>{n(r)}))}))}async requestToInspectImage(){this.sequence++;const t=ia(this,ci.CLIENT_LOCAL_VIDEO_TRACK),n={appId:this._connectInfo.appId,cname:this._connectInfo.cname,cid:this._connectInfo.cid,sid:this._connectInfo.sid,uid:this._connectInfo.uid,vid:this._connectInfo.vid};if(t){if(!t.isPlaying)return void this.emit(ci.INSPECT_RESULT,void 0,new xe(Q.INVALID_OPERATION,"Only the track being played can be inspected"));const r=await this.generateRequestData(t,n);this.workerConnection.sendMessage(r,!0,!0)}else this.emit(ci.INSPECT_RESULT,void 0,new xe(Q.INVALID_OPERATION,"Only the track being published can be inspected"))}async generateRequestData(t,n){let{appId:r,cname:i,cid:o,vid:s,sid:a,uid:c}=n;const l=Date.now(),u=await t.getCurrentFrameImage("image/jpeg",this.quality),d=await e$(u,r,i),f=this.sequence+"-"+o+"-"+c+"-"+l+"-"+Wn(12,""),h={appId:r,cid:o,cname:i,deviceId:"",elapse:mH(Number(l-this.inspectStartTime)),fileSize:d.byteLength,jpgEncryption:2,height:u.height,width:u.width,jpg:d,networkType:6,osType:7,requestId:f,sdkVersion:"4.22.0",sequence:this.sequence,sid:a,timestamp:mH(l),uid:c,vid:s,service:this._inspectMode,callbackData:this.extraInfo,ossFilePrefix:this.ossFilePrefix};this.extraInfo===void 0&&delete h.callbackData,this.ossFilePrefix===void 0&&delete h.ossFilePrefix;const p=QUe(h);if(p.byteLength{var o;if(!lt(o=["supervise","moderation"]).call(o,i))throw new xe(Q.INVALID_PARAMS,"".concat(i," is not a valid inspect type."))})),n.inspectType=r}if(n&&n.extraInfo&&n.extraInfo.length>1024)throw new xe(Q.INVALID_PARAMS,"inspectConfig.extraInfo length cannot exceed 1024 bytes")})(t),new oje(t)}};Dn("PROCESS_ID","process-".concat(Wn(8,""),"-").concat(Wn(4,""),"-").concat(Wn(4,""),"-").concat(Wn(4,""),"-").concat(Wn(12,""))),(function(){let e;try{e=window.localStorage.getItem("websdk_ng_global_parameter")}catch(t){return void D.error("Error loading sdk config",t.message)}if(e)try{const t=JSON.parse(window.atob(e)),n=Date.now();D.debug("Loading global parameters from cache",t),Object.keys(t).forEach((r=>{if(Object.prototype.hasOwnProperty.call(Pr,r)){const{value:i,expires:o}=t[r];if(o&&o<=n)return;bd[r]=i,Pr[r]=i}}))}catch(t){D.error("Error loading mutableParamsCache: ".concat(e),t.message)}})(),Array.isArray(bd.AREAS)&&bd.AREAS.length>0&&TI(bd.AREAS,!0);const gH=(e,t,n)=>{D.debug("setParameter key:".concat(e,", value:").concat(JSON.stringify(t))),Dn(e,t,n)};T1(JUe,!1),T1(XUe,!1),T1(OFe,!1),T1(sje,!1),T1(WUe,!1);const Tr=(function(e){const t=new fr,n=e,r={getListeners:t.getListeners.bind(t),on:(i,o)=>((function(s,a){s===Jc.SECURITY_POLICY_VIOLATION&&H$(a,!0)})(i,o),t.on.bind(t)(i,o)),addListener:t.addListener.bind(t),once:t.once.bind(t),off:t.off.bind(t),removeAllListeners:t.removeAllListeners.bind(t),emit:t.emit.bind(t),safeEmit:t.safeEmit.bind(t)};return Wj(Wj({},n),r)})({__TRACK_LIST__:vh,VERSION:oa,BUILD:fI,ESM_BUNDLER:!1,ESM:!0,UMD:!1,DEV:!1,setParameter:gH,getParameter:he,getSupportedCodec:async function(){let e={audio:[],video:[]};try{let t=new RTCPeerConnection;const n=await(async function(r){let i;return fn().supportUnifiedPlan?(r.addTransceiver("video",{direction:"recvonly"}),r.addTransceiver("audio",{direction:"recvonly"}),i=(await r.createOffer()).sdp):i=(await r.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0})).sdp,i})(t);if(!n)return e;t.close(),t=null,e=(function(r){const i={video:[],audio:[]};return r.match(/ VP8/i)&&i.video.push("VP8"),r.match(/ VP9/i)&&i.video.push("VP9"),r.match(/ AV1/i)&&i.video.push("AV1"),r.match(/ H264/i)&&i.video.push("H264"),r.match(/ H265/i)&&i.video.push("H265"),r.match(/ opus/i)&&i.audio.push("OPUS"),r.match(/ PCMU/i)&&i.audio.push("PCMU"),r.match(/ PCMA/i)&&i.audio.push("PCMA"),r.match(/ G722/i)&&i.audio.push("G722"),i})(n)}catch(t){throw new xe(Q.CREATE_OFFER_FAILED,t.toString&&t.toString()).print()}return e},checkSystemRequirements:function(){const e=mt.reportApiInvoke(null,{name:Zr.CHECK_SYSTEM_REQUIREMENTS,options:[],tag:vr.TRACER});let t=!1;try{const o=window.RTCPeerConnection,s=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia,a=window.WebSocket;t=!!(o&&s&&a),t&&aI()&&sq(75)&&new o().close()}catch(o){return D.error("check system requirement failed: ",o),!1}let n=!1;const r=an();r.name===An.CHROME&&Number(r.version)>=58&&(nc.engine.name!=="WebKit"||(function(){const o=an();if(w4()){if(o.os===ii.MAC_OS)return!0;if(o.os===ii.IOS){const s=nc.os.version&&nc.os.version.split(".");if(s&&Number(s[0])===14&&s[1]&&Number(s[1])>=3||s&&Number(s[0])>14)return!0}}return!1})())&&(n=!0),(r.name===An.FIREFOX&&Number(r.version)>=56||r.name===An.OPERA&&Number(r.version)>=45||r.name===An.SAFARI&&Number(r.version)>=11||r.name==="WebKit"&&(vo()||Ma())&&r.osVersion&&Number(r.osVersion.split(".")[0])>=11||uq()||an().name===An.QQ)&&(n=!0),D.debug("checkSystemRequirements, api:",t,"browser",n);const i=t&&n;return e.onSuccess(i),i},getDevices:function(e){return xs.enumerateDevices(!0,!0,e)},getMicrophones:function(e){return xs.getRecordingDevices(e)},getCameras:function(e){return xs.getCamerasDevices(e)},getElectronScreenSources:Vq,getPlaybackDevices:function(e){return xs.getSpeakers(e)},createClient:function(){var e;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{codec:"vp8",audioCodec:"opus",mode:"rtc"};const n=mt.reportApiInvoke(null,{name:Zr.CREATE_CLIENT,options:[t],tag:vr.TRACER});try{(function(r){Kr(r.codec,"config.codec",["vp8","vp9","av1","h264","h265"]),Kr(r.mode,"config.mode",["rtc","live","p2p"]),r.audioCodec!==void 0&&Kr(r.audioCodec,"config.audioCodec",["opus","pcmu","pcma","g722"]),r.proxyServer!==void 0&&pi(r.proxyServer,"config.proxyServer",1,1e4),r.turnServer!==void 0&&mq(r.turnServer),r.httpRetryConfig!==void 0&&sM(r.httpRetryConfig),r.websocketRetryConfig!==void 0&&sM(r.websocketRetryConfig)})(t)}catch(r){throw n.onError(r),r}return(cq(16,0)||lq(16,0,!0))&&(t.codec==="vp9"&&(t.codec="vp8",D.debug("browser not support vp9, force use vp8")),Dn("UNSUPPORTED_VIDEO_CODEC",["vp9"])),t.audioCodec===void 0&&(t.audioCodec="opus"),n.onSuccess(),new _Fe($a($a({forceWaitGatewayResponse:!0},t),{},{role:lt(e=["rtc","p2p"]).call(e,t.mode)?"host":t.role||"audience"}))},createCameraVideoTrack:async function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=he("CAMERA_CAPTURE_CONFIG"),n=mt.reportApiInvoke(null,{tag:vr.TRACER,name:Zr.CREATE_CAM_VIDEO_TRACK,options:[or({},e),t]});t&&(e.encoderConfig=t);const r=O4(e),i=Wn(8,"track-cam-");let o=null;D.info("start create camera video track with config",JSON.stringify(e),"trackId",i);try{o=(await Os({video:r},i)).getVideoTracks()[0]||null}catch(a){throw n.onError(a),a}if(!o){const a=new Be(Q.UNEXPECTED_ERROR,"can not find track in media stream");return n.onError(a),a.throw(D)}e.optimizationMode&&dE(i,o,e,$c(e.encoderConfig));const s=new iC(o,e,r,e.scalabiltyMode?p5(e.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},e.optimizationMode,i);return n.onSuccess(s.getTrackId()),D.info("create camera video success, trackId:",i),s},createCustomVideoTrack:function(e){const t=mt.reportApiInvoke(null,{tag:vr.TRACER,name:Zr.CREATE_CUSTOM_VIDEO_TRACK,options:[e]}),n=new Kn(e.mediaStreamTrack,{width:e.width,height:e.height,frameRate:e.frameRate,bitrateMax:e.bitrateMax,bitrateMin:e.bitrateMin},e.scalabiltyMode?p5(e.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},e.optimizationMode,Wn(8,"track-cus-"),[nr.CUSTOM_TRACK]);return t.onSuccess(n.getTrackId()),D.info("create custom video track success with config",e,"trackId",n.getTrackId()),n},createScreenVideoTrack:async function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"disable";const n=mt.reportApiInvoke(null,{tag:vr.TRACER,name:Zr.CREATE_SCREEN_VIDEO_TRACK,options:[or({},e),t]});e.encoderConfig?typeof e.encoderConfig=="string"||e.encoderConfig.width&&e.encoderConfig.height||(e.encoderConfig.width={max:1920},e.encoderConfig.height={max:1080}):e.encoderConfig="1080p_2";const r=(function(u){const d={};u.screenSourceType&&(d.mediaSource=u.screenSourceType),u.extensionId&&Od()&&(d.extensionId=u.extensionId);const{displaySurface:f,selfBrowserSurface:h,surfaceSwitching:p,systemAudio:g}=u;(zA(107)||eM(107)||tM(93))&&(f&&(Kr(f,"displaySurface",["browser","window","monitor"]),d.displaySurface=f),h?(Kr(h,"selfBrowserSurface",["exclude","include"]),d.selfBrowserSurface=h):d.selfBrowserSurface="include",p&&(Kr(p,"surfaceSwitching",["exclude","include"]),d.surfaceSwitching=p)),(zA(105)||eM(105)||tM(91))&&g&&(Kr(g,"systemAudio",["exclude","include"]),d.systemAudio=g),u.electronScreenSourceId&&(d.sourceId=u.electronScreenSourceId);const m=u.encoderConfig?aE(u.encoderConfig):null;return d.mandatory={chromeMediaSource:"desktop",maxWidth:m?m.width:void 0,maxHeight:m?m.height:void 0},m&&(m.frameRate&&(typeof m.frameRate=="number"?(d.mandatory.maxFrameRate=m.frameRate,d.mandatory.minFrameRate=m.frameRate):(d.mandatory.maxFrameRate=m.frameRate.max||m.frameRate.ideal||m.frameRate.exact||void 0,d.mandatory.minFrameRate=m.frameRate.min||m.frameRate.ideal||m.frameRate.exact||void 0),d.frameRate=m.frameRate),m.width&&(d.width=m.width),m.height&&(d.height=m.height)),d})(e),i=Wn(8,"track-scr-v-");let o=null,s=null;const a=fn();if(!a.supportShareAudio&&t==="enable"){const u=new Be(Q.NOT_SUPPORTED,"your browser or platform is not support share-screen with audio");return n.onError(u),u.throw(D)}D.info("start create screen video track with config",e,"withAudio",t,"trackId",i);try{const u=await Os({screen:r,screenAudio:t==="auto"?a.supportShareAudio:t==="enable"},i);o=u.getVideoTracks()[0]||null,s=u.getAudioTracks()[0]||null}catch(u){throw n.onError(u),u}if(!o){const u=new Be(Q.UNEXPECTED_ERROR,"can not find track in media stream");return n.onError(u),u.throw(D)}if(!s&&t==="enable"){o&&o.stop();const u=new Be(Q.SHARE_AUDIO_NOT_ALLOWED);return n.onError(u),u.throw(D)}e.optimizationMode||(e.optimizationMode="detail"),e.optimizationMode&&(dE(i,o,e,e.encoderConfig&&aE(e.encoderConfig)||void 0),e.encoderConfig&&typeof e.encoderConfig!="string"&&(e.encoderConfig.bitrateMin=e.encoderConfig.bitrateMax));const c=new Kn(o,e.encoderConfig?aE(e.encoderConfig):{},e.scalabiltyMode?p5(e.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},e.optimizationMode,i,[nr.SCREEN_TRACK]);if(!s)return n.onSuccess(c.getTrackId()),D.info("create screen video track success","video:",c.getTrackId()),c;const l=new mr(s,void 0,Wn(8,"track-scr-a-"),!1);return n.onSuccess([c.getTrackId(),l.getTrackId()]),D.info("create screen video track success","video:",c.getTrackId(),"audio:",l.getTrackId()),[c,l]},createMicrophoneAndCameraTracks:async function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n=he("CAMERA_CAPTURE_CONFIG"),r=mt.reportApiInvoke(null,{tag:vr.TRACER,name:Zr.CREATE_MIC_AND_CAM_TRACKS,options:[e,t,n]});n&&(t.encoderConfig=n);const i=O4(t),o=lB(e),s=Wn(8,"track-mic-"),a=Wn(8,"track-cam-");let c=null,l=null;D.info("start create camera video track(".concat(a,") and microphone audio track(").concat(s,") with config, audio: ").concat(JSON.stringify(e),", video: ").concat(JSON.stringify(t)));try{const f=await Os({audio:o,video:i},"".concat(s,"-").concat(a));c=f.getAudioTracks()[0],l=f.getVideoTracks()[0]}catch(f){throw r.onError(f),f}if(!c||!l){const f=new Be(Q.UNEXPECTED_ERROR,"can not find tracks in media stream");return r.onError(f),f.throw(D)}t.optimizationMode&&dE(a,l,t,$c(t.encoderConfig));const u=new _4(c,e,o,s),d=new iC(l,t,i,t.scalabiltyMode?p5(t.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},t.optimizationMode,a);return r.onSuccess([u.getTrackId(),d.getTrackId()]),D.info("create camera video track(".concat(a,") and microphone audio track(").concat(s,") success")),[u,d]},createMicrophoneAudioTrack:async function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=mt.reportApiInvoke(null,{tag:vr.TRACER,name:Zr.CREATE_MIC_AUDIO_TRACK,options:[e]}),n=lB(e),r=Wn(8,"track-mic-");let i=null;D.info("start create microphone audio track with config",JSON.stringify(e),"trackId",r);try{i=(await Os({audio:n},r)).getAudioTracks()[0]||null}catch(s){throw t.onError(s),s}if(!i){const s=new Be(Q.UNEXPECTED_ERROR,"can not find track in media stream");return t.onError(s),s.throw(D)}const o=new _4(i,e,n,r);return t.onSuccess(o.getTrackId()),D.info("create microphone audio track success, trackId:",r),o},createCustomAudioTrack:function(e){const t=mt.reportApiInvoke(null,{tag:vr.TRACER,name:Zr.CREATE_CUSTOM_AUDIO_TRACK,options:[e]}),n=new mr(e.mediaStreamTrack,e.encoderConfig?P4(e.encoderConfig):{},Wn(8,"track-cus-"),!1);return D.info("create custom audio track success with config",e,"trackId",n.getTrackId()),t.onSuccess(n.getTrackId()),n},createBufferSourceAudioTrack:async function(e){var t;const{cacheOnlineFile:n,encoderConfig:r}=e;let{source:i}=e;const o={source:i instanceof AudioBuffer?"AudioBuffer":i instanceof File?(t=File.name)!==null&&t!==void 0?t:"File":i,cacheOnlineFile:n,encoderConfig:r},s=mt.reportApiInvoke(null,{tag:vr.TRACER,name:Zr.CREATE_BUFFER_AUDIO_TRACK,options:[o]});if(he("DISABLE_WEBAUDIO"))throw new Be(Q.NOT_SUPPORTED,"can not create BufferSourceAudioTrack when WebAudio disabled");const a=Wn(8,"track-buf-");D.info("start create buffer source audio track with config",JSON.stringify(o),"trackId",a);const c=i;if(!(i instanceof AudioBuffer))try{i=await(async function(d,f){let h=null;if(typeof d=="string"){const g=ZB.get(d);if(g)return D.debug("use cached audio resource: ",d),g;try{h=(await wc((()=>Lo.get(d,{responseType:"arraybuffer"})),void 0,void 0,{maxRetryCount:3})).data}catch(m){throw new Be(Q.FETCH_AUDIO_FILE_FAILED,m.toString())}}else h=await new ot(((m,y)=>{const v=new FileReader;v.onload=E=>{E.target?m(E.target.result):y(new Be(Q.READ_LOCAL_AUDIO_FILE_ERROR))},v.onerror=()=>{y(new Be(Q.READ_LOCAL_AUDIO_FILE_ERROR))},v.readAsArrayBuffer(d)}));const p=await(function(g){const m=$p();return new ot(((y,v)=>{m.decodeAudioData(g,(E=>{y(E)}),(E=>{v(new Be(Q.DECODE_AUDIO_FILE_FAILED,E.toString()))}))}))})(h);return typeof d=="string"&&f&&ZB.set(d,p),p})(i,n)}catch(d){return s.onError(d),d.throw(D)}const l=new IBe(i),u=new TBe(c,l,r?P4(r):{},a);return D.info("create buffer source audio track success, trackId:",a),s.onSuccess(u.getTrackId()),u},setAppType:function(e){if(D.debug("setAppType: ".concat(e)),!(Number.isInteger(e)&&e>=0))throw D.debug("Invalid appType"),new xe(Q.INVALID_PARAMS,"invalid app type",e);Dn("APP_TYPE",Math.floor(e))},setLogLevel:function(e){D.setLogLevel(e)},enableLogUpload:function(){he("USE_NEW_LOG")?Dn("UPLOAD_LOG",!0):D.enableLogUpload()},disableLogUpload:function(){he("USE_NEW_LOG")?Dn("UPLOAD_LOG",!1):D.disableLogUpload()},createChannelMediaRelayConfiguration:function(){return new P$},checkAudioTrackIsActive:async function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3;const n=mt.reportApiInvoke(null,{tag:vr.TRACER,name:Zr.CHECK_AUDIO_TRACK_IS_ACTIVE,options:[t]});if(!(e instanceof mr||e instanceof Jh)){const c=new xe(Q.INVALID_TRACK,"the parameter is not a audio track");return n.onError(c),c.throw()}t&&t<1e3&&(t=1e3);const r=e instanceof mr?e.getTrackLabel():"remote_track",i=e.getVolumeLevel();let o=i,s=i;const a=Date.now();return new ot((c=>{const l=setInterval((()=>{const u=e.getVolumeLevel();o=u>o?u:o,s=u1e-4,f=Date.now()-a;if(d||f>t){clearInterval(l);const h=d,p={duration:f,deviceLabel:r,maxVolumeLevel:o,result:h};D.info("[track-".concat(e.getTrackId(),"] check audio track active completed. ").concat(JSON.stringify(p))),n.onSuccess(p),c(h)}}),200)}))},checkVideoTrackIsActive:async function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3;const n=mt.reportApiInvoke(null,{tag:vr.TRACER,name:Zr.CHECK_VIDEO_TRACK_IS_ACTIVE,options:[t]});if(!(e instanceof Kn||e instanceof Gh)){const d=new xe(Q.INVALID_TRACK,"the parameter is not a video track");return n.onError(d),d.throw()}t&&t<1e3&&(t=1e3);const r=e instanceof Kn?e.getTrackLabel():"remote_track",i=e.getMediaStreamTrack(!0),o=document.createElement("video");o.style.width="1px",o.style.height="1px",o.setAttribute("muted",""),o.muted=!0,o.setAttribute("playsinline",""),o.controls=!1,(Ri()||w4())&&(o.style.opacity="0.01",o.style.position="fixed",o.style.left="0",o.style.top="0",document.body.appendChild(o)),o.srcObject=new MediaStream([i]),o.play();const s=document.createElement("canvas");s.width=160,s.height=120;let a=0,c=0;try{const d=Date.now();a=await(function(f,h,p,g){let m,y=0,v=null;return new ot(((E,b)=>{function S(){y>g&&m&&(m(),E(y));const w=p.getContext("2d");if(!w){const I=new xe(Q.UNEXPECTED_ERROR,"can not get canvas 2d context.");return D.error(I.toString()),void b(I)}w.drawImage(f,0,0,160,120);const C=w.getImageData(0,0,p.width,p.height),_=Math.floor(C.data.length/3);if(v){for(let I=0;I<_;I+=3)if(C.data[I]!==v[I])return y+=1,void(v=C.data);v=C.data}else v=C.data}setTimeout((()=>{m&&(m(),E(y))}),h),m=EI((()=>{S()}),30)}))})(o,t,s,4),c=Date.now()-d}catch(d){throw n.onError(d),d}pFe===An.SAFARI&&(o.pause(),o.remove()),o.srcObject=null;const l=a>4,u={duration:c,changedPicNum:a,deviceLabel:r,result:l};return D.info("[track-".concat(e.getTrackId(),"] check video track active completed. ").concat(JSON.stringify(u))),n.onSuccess(u),l},setArea:TI,audioElementPlayCenter:Io,resumeAudioContext:function(){Io.autoResumeAfterInterruption(!0)},processExternalMediaAEC:function(e){kFe.processExternalMediaAEC(e)},registerExtensions:function(e){const t=he("PLUGIN_INFO")||[];e.forEach((n=>{"name"in n&&!lt(t).call(t,n.name)&&t.push(n.name);const r=n;r.__registered__=!0,r.logger.hookLog=D.extLog,r.reporter.hookApiInvoke=mt.extApiInvoke,r.parameters&&Object.keys(r.parameters).forEach((i=>{r.parameters[i]=he(i)}))})),gH("PLUGIN_INFO",t)},ChannelMediaRelayError:gh,ChannelMediaRelayEvent:Ul,ChannelMediaRelayState:zo,RemoteStreamFallbackType:yBe,RemoteStreamType:vBe,ConnectionDisconnectedReason:Tn,AudienceLatencyLevelType:KLe,AREAS:gn,preload:async function(e,t,n,r){return D$(e,t,n,r)}});Object.defineProperties(Tr,{onAudioAutoplayFailed:{get:()=>ws.onAudioAutoplayFailed,set:e=>{ws.onAudioAutoplayFailed=e}},onAutoplayFailed:{get:()=>ws.onAutoplayFailed,set:e=>{ws.onAutoplayFailed=e}},_onSecurityPolicyViolation:{value:void 0,writable:!0},_cspEventHandlerPointer:{value:void 0,writable:!0},onSecurityPolicyViolation:{get:()=>Tr._onSecurityPolicyViolation,set(e){Tr._onSecurityPolicyViolation=e,H$(e)}},__CLIENT_LIST__:{get:()=>he("SHOW_GLOBAL_CLIENT_LIST")?hd:[]}}),xs.on(z0.CAMERA_DEVICE_CHANGED,(e=>{D.info("camera device changed",JSON.stringify(e)),Tr.onCameraChanged&&Tr.onCameraChanged(e),Tr.safeEmit(Jc.CAMERA_CHANGED,e)})),xs.on(z0.RECORDING_DEVICE_CHANGED,(e=>{D.info("microphone device changed",JSON.stringify(e)),Tr.onMicrophoneChanged&&Tr.onMicrophoneChanged(e),Tr.safeEmit(Jc.MICROPHONE_CHANGED,e)})),xs.on(z0.PLAYOUT_DEVICE_CHANGED,(e=>{D.debug("playout device changed",JSON.stringify(e)),Tr.onPlaybackDeviceChanged&&Tr.onPlaybackDeviceChanged(e),Tr.safeEmit(Jc.PLAYBACK_DEVICE_CHANGED,e)})),Io.onAutoplayFailed=()=>{D.info("detect audio element autoplay failed"),ws.onAudioAutoplayFailed&&ws.onAudioAutoplayFailed()},In.on("autoplay-failed",(()=>{D.info("detect webaudio autoplay failed"),ws.onAudioAutoplayFailed&&ws.onAudioAutoplayFailed(),Tr.safeEmit(Jc.AUTOPLAY_FAILED)})),In.on(mi.STATE_CHANGE,((e,t)=>{D.info("audio context state changed: ".concat(t," => ").concat(e)),Tr.onAudioContextStateChanged&&Tr.onAudioContextStateChanged(e,t),Tr.safeEmit(Jc.AUDIO_CONTEXT_STATE_CHANGED,e,t)})),Fr.on(Th.NETWORK_STATE_CHANGE,((e,t)=>{D.info("[network-indicator] network state changed, ".concat(t," => ").concat(e))})),window&&(window.__ARTC__=Tr);const aje="d035320941e34cd5bc4ec106eff05580";var mee=(e=>(e.Host="host",e.Audience="audience",e))(mee||{});class gee{constructor(t){et(this,"client",null);et(this,"isConnected",!1);et(this,"currentChannel","");et(this,"config");if(this.config=t,!Ws.useRTC){Pe.log("[RTC] 未启用RTC,跳过客户端创建");return}}ensureClient(){if(!this.client){if(!Ws.useRTC)throw new Error("RTC is not enabled");try{Tr.setLogLevel(3),Tr.disableLogUpload()}catch{}this.client=Tr.createClient({mode:"live",codec:"vp8"}),Pe.log("[RTC] 创建RTC客户端成功"),this.setupEventListeners()}}setupEventListeners(){this.client&&(this.client.on("connection-state-change",(t,n,r)=>{t==="CONNECTED"?(this.isConnected=!0,Pe.log("[RTC] 已成功加入频道")):t==="DISCONNECTED"&&(this.isConnected=!1,Pe.warn("[RTC] 已离开频道"))}),this.client.on("user-joined",()=>{Pe.log("[RTC] 远端用户加入频道")}),this.client.on("user-left",()=>{Pe.log("[RTC] 远端用户离开频道")}),this.client.on("user-published",async(t,n)=>{try{Pe.log("[RTC] 远端用户发布音视频流:",t.uid,n),await this.client.subscribe(t,n),n==="video"&&(Pe.log("[RTC] 已订阅视频流 uid=",t.uid),setTimeout(()=>{t.videoTrack?Pe.log("[RTC] 视频轨道已可用,可以开始播放"):Pe.warn("[RTC] 订阅成功但视频轨道尚未准备好,可能需要等待")},500))}catch(r){Pe.error("[RTC] 自动订阅失败:",r)}}),this.client.on("user-unpublished",()=>{Pe.log("[RTC] 远端用户停止发布音视频流")}),this.client.on("user-info-updated",(t,n)=>{Pe.log("[RTC] 远端用户信息更新:",t.uid,n)}))}ensureMediaDevicesPolyfill(){try{if(!(typeof window<"u"&&typeof navigator<"u"))return;const n=window.location.protocol,r=navigator;if(r.mediaDevices||(r.mediaDevices={}),n==="file:"||n==="http:"){if(typeof r.mediaDevices.enumerateDevices!="function")r.mediaDevices.enumerateDevices=async()=>[];else{const o=r.mediaDevices.enumerateDevices.bind(r.mediaDevices);r.mediaDevices.enumerateDevices=async(...s)=>{try{return await o(...s)}catch{return[]}}}const i=`[RTC] 当前为非安全上下文(${n})。已禁用本地设备枚举,仅观看远端视频可用。建议使用 https 或 localhost。`;Pe.warn(i)}}catch(t){Pe.warn("[RTC] 屏蔽本地设备枚举失败:",t)}}async joinChannel(t,n,r){if(this.ensureClient(),Pe.log("[RTC] 加入频道参数:",{channelName:t,token:n,userId:r}),!this.client)throw new Error("RTC client not initialized");if(this.isConnected&&this.currentChannel===t){Pe.log("[RTC] 已经在频道中,无需重复加入:",t);return}this.isConnected&&this.currentChannel!==t&&(Pe.log("[RTC] 已在其他频道,先离开当前频道:",this.currentChannel),await this.leaveChannel());try{const i=aje,o=(t??"").toString().trim();if(!o)throw new Error("RTC channel name is empty");if(typeof n=="string"&&n.trim()==="")throw new Error("RTC token is empty string");const s=n===void 0?null:n,a=Number(r);if(isNaN(a))throw new Error(`Invalid UID: ${r}. UID must be a number.`);await this.client.join(i,o,s,a),this.currentChannel=o}catch(i){throw Pe.error("[RTC]Failed to join channel:",i),i}}async setClientRole(t){if(this.ensureClient(),!this.client)throw new Error("RTC client not initialized");await this.client.setClientRole(t),Pe.log("[RTC] 已设置客户端角色:",t)}async subscribe(t){if(this.ensureClient(),!this.client)throw new Error("RTC client not initialized");try{await this.client.subscribe(t,"video"),Pe.log("[RTC] 成功订阅用户视频流:",t.uid)}catch(n){throw Pe.error("Failed to subscribe to user:",n),n}}getRemoteUsers(){return this.client?this.client.remoteUsers:[]}async leaveChannel(){if(!(!this.client||!this.isConnected))try{await this.client.leave(),this.isConnected=!1,this.currentChannel=""}catch(t){throw Pe.error("Failed to leave channel:",t),t}}async renewToken(t){if(this.ensureClient(),!this.client)throw new Error("RTC client not initialized");try{Pe.log("[RTC]刷新token",t),await this.client.renewToken(t)}catch(n){throw Pe.error("Failed to renew token:",n),n}}destroy(){this.client&&(this.client.removeAllListeners(),this.client=null),this.isConnected=!1,this.currentChannel=""}}et(gee,"insecureNoticeShown",!1);class cje{constructor(){et(this,"rtcClient");et(this,"currentVideoTrack",null);et(this,"isWatching",!1);et(this,"rtcToken","");et(this,"userId","");et(this,"rtcTokenExpireTime",0);et(this,"onTokenUpdate",t=>{if(!Ws.useRTC){Pe.log("[RTC] 未启用RTC,不处理Token更新");return}const n=t.rtcToken,r=(t==null?void 0:t.rtcTokenExpireTime)||0;if(!n||typeof n!="string"){Pe.warn("[RTC] 收到无效的Token更新数据:",t);return}const i=Math.floor(Date.now()/1e3),o=300;if(this.rtcToken&&this.rtcTokenExpireTime>0){const s=this.rtcTokenExpireTime-i;if(s>o){Pe.log("[RTC] 当前Token还有较长时间才过期,跳过更新",{remainingSeconds:s,expireTime:new Date(this.rtcTokenExpireTime*1e3).toLocaleString()});return}}this.rtcToken=n,this.rtcTokenExpireTime=r,Pe.log("[RTC]Token已更新"),Pe.log("[RTC] User ID:",t==null?void 0:t.userId),this.rtcTokenExpireTime>0&&Pe.log("[RTC]Token过期时间:",new Date(this.rtcTokenExpireTime*1e3).toLocaleString()),this.rtcClient.renewToken(n)});this.rtcClient=new gee,this.listenTokenUpdate()}listenTokenUpdate(){qr.on("onRtcTokenChanged",this.onTokenUpdate)}async startWatching(t,n,r){try{const i=t??qi.sn;try{const c=await qr.request("getRtcToken",{},1e4);if(!c.rtcToken)return Pe.error("[RTC] Token为空"),!1;this.rtcToken=c.rtcToken,this.userId=c.userId}catch(c){return Pe.error("[RTC] 从IPC获取RTC Token失败",c),!1}Pe.log("[RTC] 加入频道参数:",{printerId:qi.printerId,channel:i,uid:this.userId,tokenLength:this.rtcToken.length,tokenPrefix:this.rtcToken.substring(0,20)+"..."}),await this.rtcClient.joinChannel(i,this.rtcToken,this.userId),await this.rtcClient.setClientRole(mee.Host),await this.waitForRemoteUsers();const o=this.rtcClient.getRemoteUsers();if(Pe.log(`[RTC Service] 频道中共有 ${o.length} 个远端用户`),o.length===0)return Pe.warn("[RTC Service] 频道中没有其他用户,请确保有其他设备已加入同一频道"),!1;let s;const a=o.filter(c=>c.hasVideo);return a.length>0?s=a[0]:(s=o[0],Pe.log(`[RTC Service] 选择用户(没有视频流): ${s.uid}`)),s?(await this.waitForVideoTrack(s),s.videoTrack?(this.currentVideoTrack=s.videoTrack,this.isWatching=!0,!0):(Pe.warn("User has no video track"),!1)):(Pe.warn("No target user found"),!1)}catch(i){throw Pe.error("Failed to start watching video stream:",i),i}}async stopWatching(){try{Pe.log("[RTC] 停止观看视频流"),this.currentVideoTrack&&(this.currentVideoTrack=null),this.isWatching=!1,await this.rtcClient.leaveChannel()}catch(t){throw Pe.error("Failed to stop watching video stream:",t),t}}getCurrentVideoTrack(){return this.currentVideoTrack}isCurrentlyWatching(){return this.isWatching}getRemoteUsers(){return this.rtcClient.getRemoteUsers()}getVideoUsers(){return this.rtcClient.getRemoteUsers().filter(t=>t.hasVideo)}async switchUser(t){try{Pe.log("Switching to user:",t),this.isWatching&&(this.currentVideoTrack=null,this.isWatching=!1);const r=this.rtcClient.getRemoteUsers().find(i=>i.uid===t);return r?(await this.rtcClient.subscribe(r),r.videoTrack?(this.currentVideoTrack=r.videoTrack,this.isWatching=!0,Pe.log("Successfully switched to user:",t),!0):!1):(Pe.warn(`Target user ${t} not found`),!1)}catch(n){throw Pe.error("Failed to switch user:",n),n}}async waitForVideoTrack(t){return new Promise(n=>{let r=0;const i=50,o=()=>{if(r++,t.videoTrack){const a=typeof t.videoTrack.getMediaStreamTrack=="function";Pe.log(`[RTC Service] 视频轨道已准备就绪: ${t.uid}, 轨道可用: ${a}`),n()}else r>=i?(Pe.warn(`[RTC Service] 等待视频轨道超时: ${t.uid}`),n()):setTimeout(o,200)};o()})}async waitForRemoteUsers(){return new Promise(t=>{let n=0;const r=30;let i=!1;const o=()=>{n++;const s=this.rtcClient.getRemoteUsers();s.length>0?(s.forEach((a,c)=>{Pe.log(`[RTC Service] 第 ${c+1} 个远端用户: UID=${a.uid}, 有视频=${a.hasVideo}, 有音频=${a.hasAudio}, 视频轨道=${!!a.videoTrack}`)}),i=!0,t()):n>=r?(i||Pe.warn("[RTC Service] 等待超时,未找到远端用户"),t()):setTimeout(o,200)};o()})}checkAgoraConfig(){const t=[];return{isValid:t.length===0,issues:t}}destroy(){try{qr.off("onRtcTokenChanged",this.onTokenUpdate),this.stopWatching(),this.rtcClient.destroy(),Pe.log("RTC service destroyed")}catch(t){Pe.error("Failed to destroy RTC service:",t)}}}const D5=new cje;class lje{constructor(){et(this,"sn","");et(this,"emitter",sT());et(this,"printerId","");et(this,"connectionStatus",0);et(this,"pendingRequests",new Map);et(this,"requestIdCounter",1);et(this,"onConnectionStatus",t=>{Pe.log("[RTM ] 连接状态变化:",t);let n;switch(typeof t=="object"&&"status"in t?n=t.status:n=t,this.connectionStatus=n,n){case 2:Pe.log("[RTM ] 正在连接到打印机...");break;case 1:Pe.log("[RTM ] 已成功连接到打印机"),this.emitter.emit("connected");break;case 0:Pe.log("[RTM ] 已断开与打印机的连接"),this.emitter.emit("disconnected");break;default:Pe.warn("[RTM ] 未知的连接状态:",n)}});et(this,"onPrinterEventRaw",t=>{let n=t;if(t.event&&typeof t.event=="string")try{n=JSON.parse(t.event)}catch(r){Pe.error("[RTM ] 解析事件数据失败:",r),n=t}this.emitter.emit("autoReportStatus",n.result)});et(this,"onRtmMessage",t=>{Pe.logJson("[RTM]收到消息:",t);const n=t==null?void 0:t.message;if(!n){Pe.warn("[RTM ] 消息数据为空");return}const r=JSON.parse(n);r.id!==void 0&&this.handleResponse(r)});Pe.log("当前协议非 RTM,跳过 RTM 初始化")}async initializeConnectionStatus(){try{const t=await qr.request("getConnectStatus",{printerId:this.printerId},1e4);Pe.log("[RTM ] 初始连接状态:",t),t.printerId===this.printerId?this.connectionStatus=t.connectStatus:(this.connectionStatus=0,Pe.error("[RTM ] 打印机ID不匹配")),this.onConnectionStatus(this.connectionStatus)}catch(t){Pe.error("[RTM ] 获取初始连接状态失败:",t),this.connectionStatus=0}}listenIPCEvent(){qr.on("onRtmMessage",this.onRtmMessage),qr.on("onConnectionStatus",this.onConnectionStatus),qr.on("onPrinterEventRaw",this.onPrinterEventRaw)}handleResponse(t){const{id:n}=t,r=this.pendingRequests.get(n.toString());if(r){const{resolve:i,timer:o}=r;clearTimeout(o),this.pendingRequests.delete(n.toString()),t.method===Rt.GetBasicInfo&&this.emitter.emit("status",t.result),i(t.result)}}async request(t,n={},r=5e3){const i=this.requestIdCounter++,o={...n,id:i},s=JSON.stringify(o);return new Promise((a,c)=>{const l=setTimeout(()=>{this.pendingRequests.delete(i.toString()),c(new Error(`[RTM] 请求超时 (${r}ms)`))},r);this.pendingRequests.set(i.toString(),{resolve:a,reject:c,timer:l}),Pe.logJson("[RTM]消息发送:",s),qr.request("sendRtmMessage",{printerId:this.printerId,message:s},r).then(()=>{}).catch(u=>{clearTimeout(l),this.pendingRequests.delete(i.toString()),Pe.error("[RTM] 发送失败:",{method:t,params:n,error:u}),c(u)})})}async startPrint(t,n){return this.request(Rt.StartPrint,{...n})}async pausePrint(t,n,r=5e3){return this.request(Rt.PausePrint,{...n},r)}async resumePrint(t,n,r=5e3){return this.request(Rt.ResumePrint,{...n},r)}async stopPrint(t,n,r=5e3){return this.request(Rt.CancelPrint,{...n},r)}async urgentStop(t,n){return this.request(Rt.UrgentStop,{...n})}async feed(t,n,r=5e3){return this.request(Rt.Feed,{...n},r)}async retreat(t,n,r=5e3){return this.request(Rt.Retreat,{...n},r)}async getSystemInfo(t,n){return this.request(Rt.GetSystemInfo,{...n})}async getBaseInfo(t,n){return this.request(Rt.GetBasicInfo,{...n})}async getPrintsInfo(t,n){return this.request(Rt.GetPrintsInfo,{...n})}async getHomeStatus(t,n){return this.request(Rt.GetHomeStatus,{...n})}async setPrintConfig(t,n){return this.request(Rt.SetPrintConfig,{...n})}async xyzHomeControl(t,n){return this.request(Rt.XYZHomeControl,{...n})}async xyzMoveControl(t,n){return this.request(Rt.XYZMoveControl,{...n})}async temperatureControl(t,n){return this.request(Rt.TemperatureControl,{...n})}async setLight(t,n){return this.request(Rt.LightSwitch,{...n})}async setFan(t,n){return this.request(Rt.FanControl,{...n})}async setPrintSpeed(t,n){return this.request(Rt.PrintSpeedControl,{...n})}async setDeviceName(t,n){return this.request(Rt.SetDeviceName,{...n})}async otaUpgrade(t,n){return this.request(Rt.OTAUpgrade,{...n})}async getFileList(t,n){var r,i;try{const o=n.params.offset,s=n.params.limit,a=Math.floor(o/s)+1,c=await qr.request("getFileList",{printerId:this.printerId,pageNumber:a,pageSize:s},1e4),l={error_code:0,offset:((r=n.params)==null?void 0:r.offset)||0,total:c.totalFiles,file_list:c.fileList.map(u=>({filename:u.fileName,type:"file",print_time:u.printTime,layer:u.layer,size:u.size,create_time:u.createTime,total_filament_used:u.totalFilamentUsed,total_print_times:u.totalPrintTimes,last_print_time:u.lastPrintTime}))};return Pe.log("[RTM ] 本地文件列表返回结果:",l),l}catch(o){return Pe.error("[RTM ] 本地文件列表失败:",o),{error_code:o.code||1,offset:((i=n.params)==null?void 0:i.offset)||0,total:0,file_list:[]}}}async getFileDetail(t,n){try{Pe.log("[RTM ] 正在获取文件详情:",n);const r=await qr.request("getFileDetail",{printerId:this.printerId,fileName:n.params.filename},1e4),i={error_code:0,filename:r.fileName,print_time:r.printTime,layer:r.layer,size:r.size,create_time:r.createTime,total_filament_used:r.totalFilamentUsed,total_print_times:r.totalPrintTimes,last_print_time:r.lastPrintTime,color_map:(r.colorMapping||[]).map(o=>({t:o.t,color:o.color,name:o.type})),thumbnail:r.thumbnail};return Pe.log("[RTM ] 获取文件详情返回结果:",i),i}catch(r){throw Pe.error("[RTM ] 获取文件详情失败:",r),r}}async getBaseInfoIPC(t,n){try{return{error_code:0,...await qr.request("getPrinterStatusRaw",{printerId:this.printerId},1e4)}}catch(r){throw Pe.error("[RTM ] 获取基本信息失败:",r),r}}async getSn(){try{const t=await qr.request("get_sn",{},1e4);return Pe.log("[RTM ]获取SN成功:",t),t}catch(t){throw Pe.error("[RTM ]获取SN失败:",t),t}}async getFileThumbnail(t,n){return this.request(Rt.GetFileThumbnail,{...n})}async deleteFile(t,n){return this.request(Rt.DeleteFile,{...n})}async getPrintHistoryList(t,n,r=1,i=20){return this.getPrintTaskList(r,i)}async getPrintTaskList(t=1,n=100){try{const r=await qr.request("getPrintTaskList",{printerId:this.printerId,pageNumber:t,pageSize:n},1e4);if(!r||r===null)return Pe.error("[RTM ] 获取打印任务列表响应为空"),{error_code:1,total:0,history_task_list:[]};const i={error_code:0,total:r.totalTasks||0,history_task_list:(r.taskList||[]).map(o=>({task_id:o.taskId,task_name:o.taskName,begin_time:o.beginTime,end_time:o.endTime,task_status:o.taskStatus,time_lapse_video_status:0,time_lapse_video_url:"",time_lapse_video_size:0,time_lapse_video_duration:0}))};return Pe.log("[RTM ] 获取打印任务列表返回结果:",i),i}catch(r){return Pe.error("[RTM ] 获取打印任务列表失败:",r),{error_code:1,total:0,history_task_list:[]}}}async deletePrintHistory(t,n){var r;try{const i=((r=n.params)==null?void 0:r.list)||[];return Pe.log("[RTM]删除打印任务请求:",{printerId:this.printerId,taskIds:i}),{error_code:(await qr.request("deletePrintTasks",{printerId:this.printerId,taskIds:i},1e4)).error_code}}catch(i){throw Pe.error("[RTM ] 删除打印任务失败:",i),i}}async loadFilament(t,n,r=5e3){return this.request(Rt.LoadFilamenting,{...n},r)}async unloadFilament(t,n,r=5e3){return this.request(Rt.UnloadFilamenting,{...n},r)}async setFilamentInfo(t,n){return this.request(Rt.SetFilamentInfo,{...n})}async setMonoFilamentInfo(t,n){return this.request(Rt.SetMonoFilamentInfo,{...n})}async getMonoFilamentInfo(t,n){return this.request(Rt.GetMonoFilamentInfo,{...n})}async setAutoFillFilament(t,n){return this.request(Rt.SetAutoFillFilament,{...n})}async getCanvasInfo(t,n){return this.request(Rt.GetCanvasInfo,{...n})}async autoLeveling(t,n){return this.request(Rt.AutoLeveling,{...n})}async vibrationOptimize(t,n){return this.request(Rt.VibrationOptimize,{...n})}async pidDetect(t,n){return this.request(Rt.PIDDetect,{...n})}async oneKeyCheck(t,n){return this.request(Rt.OneKeyCheck,{...n})}async getAIDetectionSettings(t,n){return this.request(Rt.GetAIDetectionSettings,{...n})}async setAIDetectionSettings(t,n){return this.request(Rt.SetAIDetectionSettings,{...n})}}const Ku=new lje,uje={class:"dialog-header font-size16"},dje={class:"dialog-content bg-color"},fje={class:"noodle-detection-cards"},hje={class:"detection-cards"},pje={class:"detection-card"},mje={class:"card-info"},gje={class:"card-title"},vje={class:"card-description"},yje={class:"config-section"},Eje={class:"config-card"},bje={class:"config-label"},Sje={class:"config-card"},Aje={class:"config-label"},Cje={class:"bottom-container"};var rc=(e=>(e[e.On=1]="On",e[e.Off=0]="Off",e))(rc||{}),vee=(e=>(e.Low="low",e.Medium="medium",e.High="high",e))(vee||{}),yee=(e=>(e.Notify="notification",e.Pause="pause",e))(yee||{});const wje=Je({__name:"ai-detection",props:{title:{type:String,default:"AI功能"},detectionItems:{type:Array,required:!0},detectionFrequency:{type:String,default:"medium"},anomalyHandling:{type:String,default:"notification"},cancelText:{type:String,default:"关闭"},saveText:{type:String,default:"保存"},modelValue:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}},emits:["update:modelValue","save","close"],setup(e,{emit:t}){const{isMobile:n}=gs(),{t:r}=Eo(),i=e,o=t,s=V({get:()=>i.modelValue,set:y=>o("update:modelValue",y)}),a=se(0),c=se("medium"),l=se("notification"),u=se(0),d=V(()=>a.value===0),f=()=>{const y=i.detectionItems.find(E=>E.key==="noodleDetection");a.value=(y==null?void 0:y.value)===1?1:0,c.value=i.detectionFrequency,l.value=i.anomalyHandling;const v=i.detectionItems.find(E=>E.key==="foreignObjectDetection");u.value=(v==null?void 0:v.value)===1?1:0};Ye(()=>i.modelValue,y=>{y&&f()},{immediate:!0}),Ye(()=>i.detectionItems,()=>{i.modelValue&&f()},{deep:!0}),Ye(()=>[i.detectionFrequency,i.anomalyHandling],()=>{i.modelValue&&(c.value=i.detectionFrequency,l.value=i.anomalyHandling)});const h=()=>{s.value=!1,o("close")},p=()=>{const y={spaghetti_detection:{status:a.value,frequency:c.value,handing:l.value},foreign_object_detection:{status:u.value}};o("save",y),s.value=!1},g=()=>{},m=()=>{};return(y,v)=>{const E=pr,b=Ug,S=Fg,w=Zd;return ne(),Ze(w,{modelValue:s.value,"onUpdate:modelValue":v[3]||(v[3]=C=>s.value=C),width:P(n)?"90%":"500px","show-close":!1,style:Ut({padding:0,maxHeight:P(n)?"80vh":"70vh",overflow:"auto"}),"close-on-click-modal":!1,"close-on-press-escape":!0,class:"bg-color"},{header:Re(()=>[G("div",uje,[G("span",null,Ue(e.title),1),be(E,{class:"close-btn",type:"info",size:"small",onClick:h},{default:Re(()=>[be(P(Wd))]),_:1})])]),default:Re(()=>[G("div",dje,[G("div",fje,[G("div",hje,[G("div",pje,[G("div",mje,[G("div",gje,Ue(P(r)("aiDetection.noodleDetection")),1),G("div",vje,Ue(P(r)("aiDetection.noodleDetectionDesc")),1)]),be(S,{modelValue:a.value,"onUpdate:modelValue":v[0]||(v[0]=C=>a.value=C),class:"card-select",onChange:g},{default:Re(()=>[be(b,{label:P(r)("aiDetection.on"),value:1},null,8,["label","value"]),be(b,{label:P(r)("aiDetection.off"),value:0},null,8,["label","value"])]),_:1},8,["modelValue"])])]),G("div",yje,[G("div",Eje,[G("div",bje,Ue(P(r)("aiDetection.detectionFrequency")),1),be(S,{modelValue:c.value,"onUpdate:modelValue":v[1]||(v[1]=C=>c.value=C),class:"config-select",disabled:d.value,onChange:m},{default:Re(()=>[be(b,{label:P(r)("aiDetection.low"),value:"low"},null,8,["label","value"]),be(b,{label:P(r)("aiDetection.medium"),value:"medium"},null,8,["label","value"]),be(b,{label:P(r)("aiDetection.high"),value:"high"},null,8,["label","value"])]),_:1},8,["modelValue","disabled"])]),G("div",Sje,[G("div",Aje,Ue(P(r)("aiDetection.anomalyHandling")),1),be(S,{modelValue:l.value,"onUpdate:modelValue":v[2]||(v[2]=C=>l.value=C),class:"config-select",disabled:d.value,onChange:m},{default:Re(()=>[be(b,{label:P(r)("aiDetection.notify"),value:"notification"},null,8,["label","value"]),be(b,{label:P(r)("aiDetection.pause"),value:"pause"},null,8,["label","value"])]),_:1},8,["modelValue","disabled"])])])]),G("div",Cje,[be(E,{class:"cancel-btn",onClick:h},{default:Re(()=>[yt(Ue(e.cancelText),1)]),_:1}),be(E,{class:"save-btn",type:"primary",onClick:p,loading:e.loading},{default:Re(()=>[yt(Ue(e.saveText),1)]),_:1},8,["loading"])])])]),_:1},8,["modelValue","width","style"])}}}),Tje=rr(wje,[["__scopeId","data-v-bcd626cd"]]),WE=1e3,di=oy("printer-mqtt",()=>{const r=String(Ws.wan).toLowerCase()==="true",i=se(),o=se(!1),{t:s}=Eo(),a=se(qi.sn),c=se(!1);async function l(){var _e;if(!r){const urlSn=(qi.sn||"").trim();if(urlSn){a.value=urlSn;return}try{const Me=await Ku.getSn(),it=(_e=Me==null?void 0:Me.sn)==null?void 0:_e.trim();it&&(a.value=it)}catch(Me){Pe.warn("[IPC] get_sn 失败,沿用 URL sn",Me)}}}const u=se(!1),d=se([]),f=se([]),h=se(1),p=se(15),g=se(0),m=se(!0),y=se(!1),v=se(""),E=se(),b=se([]),S=se(""),w=se(0);let C=null;const _=se({}),I=eo({moveStep:10,modelFanSpeed:0,auxiliaryFanSpeed:0,chassisFanSpeed:0,lightValue:0,curPrinterMode:1,printModeOptions:[{label:"control.slient",value:0},{label:"control.balanced",value:1},{label:"control.sport",value:2},{label:"control.ludicrous",value:3}],xPos:0,yPos:0,zPos:0}),O=se(),L=se(),R=se(""),F=se([]),W=se([]),J=se(""),Y=se(""),M=se(xn.Local),B=se(0),q=se([]),z=se(""),A=se(!1),T=se(),k=se({error_code:0,spaghetti_detection:{status:rc.Off,frequency:vee.Medium,handing:yee.Notify},foreign_object_detection:{status:rc.Off}}),j=V(()=>{var _e,Me;return((Me=(_e=O.value)==null?void 0:_e.external_device)==null?void 0:Me.u_disk)??!1}),re=V(()=>{var _e,Me;return((Me=(_e=O.value)==null?void 0:_e.external_device)==null?void 0:Me.camera)??!1}),me=V(()=>{var _e,Me,it,zt;return((_e=i.value)==null?void 0:_e.machine_model)==tc.CC2?!0:((zt=(it=(Me=O.value)==null?void 0:Me.external_device)==null?void 0:it.chassis_camera)==null?void 0:zt.configured)==1}),te=V(()=>{var _e,Me,it,zt;return((_e=i.value)==null?void 0:_e.machine_model)==tc.CC2?!0:((zt=(it=(Me=O.value)==null?void 0:Me.external_device)==null?void 0:it.chassis_lighting)==null?void 0:zt.configured)==1}),X=V(()=>{var _e,Me;return((_e=i.value)==null?void 0:_e.machine_model)==tc.CC2?qi.region!=qC.China&&jn():((Me=i.value)==null?void 0:Me.machine_model)==tc.C2?me.value&&te.value&&jn():!1}),fe=V(()=>{var _e,Me,it,zt;return((_e=i.value)==null?void 0:_e.machine_model)==tc.CC2?!0:((zt=(it=(Me=O.value)==null?void 0:Me.external_device)==null?void 0:it.auxiliary_fan)==null?void 0:zt.configured)==1}),le=V(()=>{var _e,Me,it,zt;return((_e=i.value)==null?void 0:_e.machine_model)==tc.CC2?!0:((zt=(it=(Me=O.value)==null?void 0:Me.external_device)==null?void 0:it.exhaust_grille)==null?void 0:zt.configured)==1}),ve=V(()=>{var _e,Me,it,zt;return((_e=i.value)==null?void 0:_e.machine_model)==tc.CC2?!0:((zt=(it=(Me=O.value)==null?void 0:Me.external_device)==null?void 0:it.chassis_fan)==null?void 0:zt.configured)==1}),Z=V(()=>{var Me,it;const _e=((Me=L.value)==null?void 0:Me.filename)??"";if(((it=O.value)==null?void 0:it.machine_status.status)===Ge.Printing&&_e)if(M.value===xn.UDisk){const zt=W.value.find(Fi=>Fi.filename===_e);return(zt==null?void 0:zt.layer)??0}else{const zt=F.value.find(Fi=>Fi.filename===_e);return zt?(zt==null?void 0:zt.layer)??0:(Pe.log("当前打印文件不存在缓存,重新获取文件详情获取总层数",_e),jI(_e,xn.Local,void 0,!1),B)}return 0}),ae=V(()=>{var _e;return((_e=E.value)==null?void 0:_e.canvas_info.auto_refill)??!1}),pe=V(()=>{var _e;return((_e=E.value)==null?void 0:_e.canvas_info.active_tray_id)??-1}),K=se(-1),ce=`lastLoadedSlotId:${a.value}`,ye=localStorage.getItem(ce);ye&&(K.value=Number(ye));const ee=V(()=>{var _e;for(const Me of((_e=E.value)==null?void 0:_e.canvas_info.canvas_list)??[]){const it=Me.tray_list.find(zt=>zt.status==Oo.loaded);if(it)return K.value=it.tray_id,localStorage.setItem(ce,it.tray_id.toString()),it.tray_id}return-1}),$=V(()=>{var _e;for(const Me of((_e=E.value)==null?void 0:_e.canvas_info.canvas_list)??[])if(Me.connected)return!0;return!1});Ye($,(_e,Me)=>{!_e&&Me&&r1()},{immediate:!0});const ge=V(()=>L.value===void 0?0:L.value.print_duration),ie=V(()=>L.value===void 0?0:L.value.remaining_time_sec),Ie=V(()=>{var Me;return((Me=O.value)==null?void 0:Me.machine_status.status)??Ge.Offline}),Ce=V(()=>{var _e;return((_e=O.value)==null?void 0:_e.machine_status.sub_status)??0}),oe=se(0),Ne=V(()=>{const _e=Ce.value,Me=[De.LoadStartCanvas,De.LoadNozzleHeatingCanvas,De.LoadManualInsertFilamentCanvas,De.LoadCutFilamentCanvas,De.LoadDrawFilamentCanvas,De.LoadPushFilamentCanvas,De.LoadFlushFilamentCanvas,De.LoadCompleteCanvas,De.LoadFailedCanvas],it=[De.UnloadStartCanvas,De.UnloadNozzleHeatingCanvas,De.UnloadCheckFilamentCanvas,De.UnloadCutFilamentCanvas,De.UnloadDrawFilamentCanvas,De.UnloadCompleteCanvas,De.UnloadFailedCanvas];return Me.includes(_e)||it.includes(_e)}),x=V(()=>Ie.value===Ge.Initializing),N=V(()=>c.value),U=V(()=>Ie.value===Ge.Printing),de=V(()=>Ie.value===Ge.Idle),we=V(()=>Ie.value===Ge.Loading),Ae=V(()=>Ie.value===Ge.UnLoading),Le=V(()=>Ie.value===Ge.AutoLeveling),ue=V(()=>Ie.value===Ge.PidCalibration),Ee=V(()=>Ie.value===Ge.ResonanceTester),He=V(()=>Ie.value===Ge.SelfCheck),Xe=V(()=>Ie.value===Ge.Upgrade),qe=V(()=>Ie.value===Ge.ManualHoming),It=V(()=>Ie.value===Ge.FileSending),We=V(()=>Ie.value===Ge.Extrudering),$e=V(()=>Ie.value===Ge.PowerOffResume),ht=V(()=>Ce.value===De.Homed),Ht=V(()=>Ce.value===De.Printing),_t=V(()=>Ie.value===Ge.Printing&&Ce.value===De.Paused),qt=V(()=>Ie.value===Ge.Printing&&Ce.value===De.Paused),nn=V(()=>Ie.value===Ge.Printing&&Ce.value===De.Interruption),kn=V(()=>Ie.value===Ge.Printing&&Ce.value===De.Stopped),Jn=V(()=>Ie.value===Ge.Printing&&Ce.value===De.PrintComplete),oi=V(()=>Ie.value===Ge.Printing&&Ce.value===De.Stopping),Se=V(()=>Ie.value===Ge.Printing&&Ce.value===De.Pausing),Oe=V(()=>Ie.value===Ge.Printing&&Ce.value===De.Resuming),ct=V(()=>Ie.value===Ge.Printing&&Ce.value===De.Resumed),gt=V(()=>Ie.value===Ge.Printing&&Ce.value===De.HotendPreheating),Et=V(()=>Ie.value===Ge.Printing&&Ce.value===De.HotendCooling),$n=V(()=>Ie.value===Ge.Printing&&Ce.value===De.BedPreheating),Mi=V(()=>Ie.value===Ge.Printing&&Ce.value===De.BedCooling),$o=V(()=>Ie.value===Ge.Printing&&Ce.value===De.Homing),Tl=V(()=>Ie.value===Ge.Printing&&Ce.value===De.Homed),ua=V(()=>Ie.value===Ge.Printing&&Ce.value===De.AutoLeveling),Ve=V(()=>Ie.value===Ge.Printing&&Ce.value===De.AutoLevelingComplete),Ct=V(()=>Ie.value===Ge.Printing&&Ce.value===De.UnloadNozzleHeatingCanvas),un=V(()=>Ie.value===Ge.Printing&&Ce.value===De.UnloadCheckFilamentCanvas),hr=V(()=>Ie.value===Ge.Printing&&Ce.value===De.UnloadCutFilamentCanvas),si=V(()=>Ie.value===Ge.Printing&&Ce.value===De.UnloadDrawFilamentCanvas),No=V(()=>Ie.value===Ge.Printing&&Ce.value===De.LoadNozzleHeatingCanvas),Bi=V(()=>Ie.value===Ge.Printing&&Ce.value===De.LoadManualInsertFilamentCanvas),Mo=V(()=>Ie.value===Ge.Printing&&Ce.value===De.LoadCutFilamentCanvas),o0=V(()=>Ie.value===Ge.Printing&&Ce.value===De.LoadDrawFilamentCanvas),A6=V(()=>Ie.value===Ge.Printing&&Ce.value===De.LoadPushFilamentCanvas),Oee=V(()=>Ie.value===Ge.Printing&&Ce.value===De.LoadFlushFilamentCanvas),_ee=V(()=>Ie.value===Ge.Printing&&Ce.value===De.LoadCompleteCanvas);V(()=>Ce.value===De.ManualInsertFilament),V(()=>Ce.value===De.BiteFilament);const Ree=V(()=>Ce.value===De.BiteFilamentEnd),kee=V(()=>Ce.value===De.CutFilament),xee=V(()=>Ce.value===De.EjectFilament),Dee=V(()=>Ce.value===De.EjectFilamentComplete),Lee=V(()=>Ce.value===De.UnloadCompleteCanvas),Nee=V(()=>Ce.value===De.LoadCompleteCanvas),Mee=V(()=>Ce.value===De.ResonanceOptimizing),Bee=V(()=>Ce.value===De.ResonanceOptimized);V(()=>Ce.value===De.ResonanceOptimizeFailed),V(()=>Ce.value===De.PidPreheating),V(()=>Ce.value===De.PidDetecting);const Fee=V(()=>Ce.value===De.PidCompleted);V(()=>Ce.value===De.PidFailed);const Uee=V(()=>Ce.value===De.AutoLeveling),jee=V(()=>Ce.value===De.AutoLevelingComplete),Hee=V(()=>Ce.value===De.OTAInfoUpdating),zee=V(()=>Ce.value===De.OTADownloading),Wee=V(()=>Ce.value===De.OTAExtracting),Vee=V(()=>Ce.value===De.OTAUpdating),BI=V(()=>Ce.value===De.OTAComplete),Gee=V(()=>Ce.value===De.OTAFailed),Jee=V(()=>Ce.value===De.InitializeComplete),Zee=V(()=>Ie.value===Ge.TimeLapseVideoGenerating&&Ce.value===De.TimeLapseVideoGenerating),Yee=V(()=>Ie.value===Ge.Printing&&Ce.value===De.TimeLapseVideoGeneratingComplete),Xee=V(()=>Ie.value===Ge.Printing&&Ce.value===De.TimeLapseVideoGeneratingFailed),Qee=V(()=>Ie.value===Ge.PowerOffResume&&Ce.value==De.Default);V(()=>Ce.value===De.FileSendingComplete),Ye(BI,_e=>{_e&&setTimeout(async()=>{await l(),Pe.log("固件升级完成之后注册客户端"),dn.registerClient(a.value)},2e3)}),Ye($,_e=>{_e||r1()},{immediate:!0});const Kee=se("");dn.emitter.on("status",c2),dn.emitter.on("autoReportStatus",FI),dn.emitter.on("systemAutoReportStatus",qee),dn.emitter.on("getBaseInfo",xu),dn.emitter.on("getSystemInfo",l2),dn.emitter.on("sendHeartBeat",ete),dn.emitter.on("connected",async()=>{await l(),c.value=!0,dn.registerClient(a.value),dn.subscribeAotuReportTopic(a.value)}),dn.emitter.on("disconnected",()=>{c.value=!1,u.value=!1}),dn.emitter.on("registerSuccess",async()=>{u.value=!0,await xu(),await l2(),me.value&&await zI(),await r1()}),Ku.emitter.on("connected",async()=>{c.value=!0,u.value=!0,await xu(),await l2(),await r1(),X.value&&await WI()}),Ku.emitter.on("disconnected",()=>{c.value=!1,u.value=!1}),Ku.emitter.on("status",c2),Ku.emitter.on("autoReportStatus",FI),Jl.emitter.on("registerMaxRetryReached",()=>{Zt.error(s("toastMessages.DeviceRegisterFailed"))}),dn.emitter.on("ConnectionLimitExceeded",()=>{Zt.error(s("toastMessages.ConnectionLimitExceeded"))});async function FI(_e){if(!(!_e||typeof _e!="object")&&O.value){if(_e.extruder&&(O.value.extruder||(O.value.extruder={}),Object.assign(O.value.extruder,_e.extruder)),_e.heater_bed&&(O.value.heater_bed||(O.value.heater_bed={}),Object.assign(O.value.heater_bed,_e.heater_bed)),_e.print_status&&(O.value.print_status||(O.value.print_status={}),Object.assign(O.value.print_status,_e.print_status)),_e.fans&&(O.value.fans||(O.value.fans={}),_e.fans.fan&&(O.value.fans.fan||(O.value.fans.fan={}),Object.assign(O.value.fans.fan,_e.fans.fan)),_e.fans.box_fan&&(O.value.fans.box_fan||(O.value.fans.box_fan={}),Object.assign(O.value.fans.box_fan,_e.fans.box_fan)),_e.fans.aux_fan&&(O.value.fans.aux_fan||(O.value.fans.aux_fan={}),Object.assign(O.value.fans.aux_fan,_e.fans.aux_fan)),_e.fans.heater_fan&&(O.value.fans.heater_fan||(O.value.fans.heater_fan={}),Object.assign(O.value.fans.heater_fan,_e.fans.heater_fan)),_e.fans.controller_fan&&(O.value.fans.controller_fan||(O.value.fans.controller_fan={}),Object.assign(O.value.fans.controller_fan,_e.fans.controller_fan))),_e.gcode_move&&(O.value.gcode_move||(O.value.gcode_move={}),_e.gcode_move.speed_mode,Object.assign(O.value.gcode_move,_e.gcode_move)),_e.tool_head&&(O.value.tool_head||(O.value.tool_head={homed_axes:""}),Object.assign(O.value.tool_head,_e.tool_head)),_e.ztemperature_sensor&&(O.value.ztemperature_sensor||(O.value.ztemperature_sensor={}),Object.assign(O.value.ztemperature_sensor,_e.ztemperature_sensor)),_e.led&&(O.value.led||(O.value.led={}),Object.assign(O.value.led,_e.led)),_e.external_device&&(O.value.external_device||(O.value.external_device={u_disk:!1,camera:!1,chassis_camera:{configured:0},chassis_lighting:{configured:0},auxiliary_fan:{configured:0},exhaust_grille:{configured:0},chassis_fan:{configured:0}}),Object.assign(O.value.external_device,_e.external_device)),_e.machine_status){O.value.machine_status||(O.value.machine_status={status:0,sub_status:0,progress:0,exception_status:[],sub_status_reason_code:0});const Me=_e.machine_status.exception_status??[];q.value=[...Me],Me.length>0&&Pe.log("[RTM]异常码上报: ",Me),Object.assign(O.value.machine_status,_e.machine_status)}_e.canvas_info&&(E.value||(E.value={}),E.value.canvas_info||(E.value.canvas_info={}),Object.assign(E.value.canvas_info,_e.canvas_info)),_e.mono_filament_info&&(T.value||(T.value={}),Object.assign(T.value,_e.mono_filament_info)),_e.spaghetti_detection&&(k.value||(k.value={}),k.value.spaghetti_detection||(k.value.spaghetti_detection={}),Object.assign(k.value.spaghetti_detection,_e.spaghetti_detection)),_e.foreign_object_detection&&(k.value||(k.value={}),k.value.foreign_object_detection||(k.value.foreign_object_detection={}),Object.assign(k.value.foreign_object_detection,_e.foreign_object_detection)),c2(O.value)}}async function qee(_e){!_e||typeof _e!="object"||(i.value||(i.value={}),Object.assign(i.value,_e),Pe.log("[MQTT]自动上报系统信息:",i.value))}Ye(()=>{var _e;return(_e=O.value)==null?void 0:_e.machine_status.progress},_e=>{_e&&_e>0&&It.value&&jn()}),Ye(()=>It.value,(_e,Me)=>{!_e&&Me&&(w.value=100,w.value=0,S.value="",Pe.log("[ALL] 清理文件传输进度信息"))}),Ye(()=>Ie.value,async(_e,Me)=>{if(Me===Ge.Printing&&_e!==Ge.Printing&&(C!==null&&(clearTimeout(C),C=null),xu()),_e===Ge.Printing){C!==null&&(clearTimeout(C),C=null);const it=60;let zt=0;const Fi=async()=>{var Ji,Du;if(Ie.value!==Ge.Printing){C=null;return}if(zt>=it){Pe.log(`[ALL]轮询获取文件名已达最大次数${it}次,停止轮询`),C=null;return}zt++,await xu();const Vr=((Du=(Ji=O.value)==null?void 0:Ji.print_status)==null?void 0:Du.filename)||"";if(Vr){C=null;const Il=10,s0=1e3;(async()=>{let Va=!1;for(let Lu=1;Lu<=Il;Lu++){Pe.log(`[ALL]第${Lu}次请求打印文件缩略图:`,Vr);const u2=Lu==Il;if(await UI(Vr,xn.Local,u2,"print")){Pe.log("[MQTT]获取到缩略图,停止重试"),Va=!0;break}LusetTimeout(i1,s0))}Va||Pe.log(`[ALL]重试${Il}次后仍未获取到缩略图`)})()}else Ie.value===Ge.Printing?C=setTimeout(Fi,500):C=null};Fi()}_e===Ge.Offline&&(c.value=!1,u.value=!1,Pe.warn("[RTM] 主状态变为离线(-1)"))});async function c2(_e){var Me,it,zt,Fi,Vr,Ji,Du,Il,s0,Df,Va,Lu,u2,i1,VI,GI,JI;_e&&(((Me=O.value)==null?void 0:Me.machine_status.sub_status)!==void 0&&(oe.value=O.value.machine_status.sub_status),O.value=_e,L.value=(it=O.value)==null?void 0:it.print_status,R.value=((Fi=(zt=O.value)==null?void 0:zt.print_status)==null?void 0:Fi.uuid)||"",I.lightValue=((Vr=_e==null?void 0:_e.led)==null?void 0:Vr.status)??0,I.modelFanSpeed=Math.round((((Du=(Ji=_e==null?void 0:_e.fans)==null?void 0:Ji.fan)==null?void 0:Du.speed)??0)*100/255),I.auxiliaryFanSpeed=Math.round((((s0=(Il=_e==null?void 0:_e.fans)==null?void 0:Il.aux_fan)==null?void 0:s0.speed)??0)*100/255),I.chassisFanSpeed=Math.round((((Va=(Df=_e==null?void 0:_e.fans)==null?void 0:Df.box_fan)==null?void 0:Va.speed)??0)*100/255),I.curPrinterMode=(_e==null?void 0:_e.gcode_move.speed_mode)??1,I.xPos=Number((u2=(Lu=O.value)==null?void 0:Lu.gcode_move.x)==null?void 0:u2.toFixed(1)),I.yPos=Number((VI=(i1=O.value)==null?void 0:i1.gcode_move.y)==null?void 0:VI.toFixed(1)),I.zPos=Number((JI=(GI=O.value)==null?void 0:GI.gcode_move.z)==null?void 0:JI.toFixed(1)),v.value=(_e==null?void 0:_e.tool_head.homed_axes)??"",Pe.log("[ALL]设备全量信息更新:",O.value))}function $ee(_e){var Me;q.value=[..._e],(Me=O.value)!=null&&Me.machine_status&&(O.value.machine_status.exception_status=[..._e])}async function ete(){try{o.value=!0;const _e={type:"PING"};Pe.log("[MQTT]发送心跳包"),await dn.sendHeartBeat(a.value,_e)}catch{}finally{o.value=!1}}async function tte(_e){try{o.value=!0;const Me={method:Rt.StartPrint,params:_e};_e.storage_media===xn.UDisk&&!_e.filename.startsWith("/")&&(_e.filename="/"+_e.filename);let it;return jn()||(it=await dn.startPrint(a.value,Me)),it.error_code!==0&&it.error_code!==Eh.BedMeshDataMissing?Lt(xt.ErrorCodeAndCustom,it.error_code,"error",s("toastMessages.startFailed")):setTimeout(()=>{xu()},500),it}catch(Me){return Lt(xt.CustomMessage,0,"error",s("toastMessages.startFailed")+Me.message),{error_code:1}}finally{o.value=!1}}async function nte(){try{o.value=!0;const _e={method:Rt.PausePrint};let Me;jn()||(Me=await dn.pausePrint(a.value,_e,1e4*6)),Me.error_code!==0&&Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.pauseFailed"))}catch(_e){Lt(xt.CustomMessage,0,"error",s("toastMessages.pauseFailed")+_e.message)}finally{o.value=!1}}async function rte(_e=1e4*6){try{o.value=!0;const Me={method:Rt.ResumePrint};let it;jn()||(it=await dn.resumePrint(a.value,Me,_e)),it.error_code!==0&&Lt(xt.ErrorCodeAndCustom,it.error_code,"error",s("toastMessages.resumeFailed"))}catch(Me){Lt(xt.CustomMessage,0,"error",s("toastMessages.resumeFailed")+Me.message)}finally{o.value=!1}}async function ite(){try{o.value=!0;const _e={method:Rt.CancelPrint};let Me;jn()||(Me=await dn.stopPrint(a.value,_e,1e4*6)),Me.error_code!==0&&Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.stopFailed"))}catch(_e){Lt(xt.CustomMessage,0,"error",s("toastMessages.stopFailed")+_e.message)}finally{o.value=!1}}async function UI(_e,Me=xn.Local,it=!0,zt="preview"){try{if(_e==="")return Pe.error("Filename is empty when getting file thumbnail!",_e),"";o.value=!0,Me===xn.UDisk&&!_e.startsWith("/")&&(_e="/"+_e);const Fi={method:Rt.GetFileThumbnail,params:{storage_media:Me,file_name:_e}};let Vr;if(jn()||(Vr=await dn.getFileThumbnail(a.value,Fi)),Vr.error_code===0){const Ji=Vr.thumbnail??"";return zt==="preview"?J.value=Ji:Y.value=Ji,Ji}else return it&&Lt(xt.ErrorCodeMsg,Vr.error_code),""}catch(Fi){return it&&Lt(xt.CustomMessage,0,"error",s("errorCodes.GetThumbnailFailed")+Fi.message),""}}async function ote(_e=xn.Local,Me,it=0,zt=20){try{o.value=!0;const Fi={method:Rt.GetFileList,params:{storage_media:_e,...Me&&{dir:Me},offset:it,limit:zt}};let Vr;if(jn()||(Vr=await dn.getFileList(a.value,Fi,1e4*3)),Vr.error_code==Eh.PrinterBusy?A.value=!0:A.value=!1,Vr.error_code===0){const Ji=(Il,s0)=>{const Df=new Map(s0.value.map(Va=>[Va.filename,Va]));for(const Va of Il)Df.set(Va.filename,Va);s0.value=Array.from(Df.values())},Du=Vr.file_list||[];return _e===xn.Local?Ji(Du,F):_e===xn.UDisk&&Ji(Du,W),{res:!0,file_list:Vr.file_list,total:Vr.total??0}}else return Vr.error_code==Eh.UDiskNotDetected?(Pe.log("u盘不存在"),{res:!1,file_list:[],total:0}):Vr.error_code==Eh.PrinterBusy&&_e==xn.UDisk&&Me=="/"&&it==0?(Pe.warn("请求U盘列表首页时,打印机正忙"),{res:!1,file_list:[],total:0}):(Lt(xt.ErrorCodeAndCustom,Vr.error_code,"error",s("toastMessages.getFileListFailed")),{res:!1,file_list:[],total:0})}catch{return Lt(xt.CustomMessage,0,"error",s("toastMessages.getFileListFailed")),{res:!1,file_list:[],total:0}}finally{o.value=!1}}async function jI(_e,Me,it,zt=!0,Fi="preview"){try{o.value=!0,Me===xn.UDisk&&!_e.startsWith("/")&&(_e="/"+_e);const Vr={method:Rt.GetFileDetail,params:{storage_media:Me,filename:_e,...it&&{dir:it}}};let Ji;return jn()||(Ji=await dn.getFileDetail(a.value,Vr,5e3)),Ji.error_code===0?(_.value=Ji,B.value=Ji.layer??0,jn(),Ji):(zt&&Lt(xt.ErrorCodeAndCustom,Ji.error_code,"error",s("toastMessages.getFileInfoFailed")),Ji)}catch(Vr){return zt&&Lt(xt.CustomMessage,0,"error",Vr.message),{}}finally{o.value=!1}}async function ste(_e,Me){try{o.value=!0;const it={method:Rt.DeleteFile,params:{storage_media:Me,file_path:_e}};let zt;jn()||(zt=await dn.deletePrintFile(a.value,it)),zt.error_code!==0&&Lt(xt.ErrorCodeMsg,zt.error_code,"error")}catch{Lt(xt.ErrorCodeMsg,0,"error",s("toastMessages.deleteFileFailed"))}finally{o.value=!1}}async function ate(){try{o.value=!0;const _e={method:Rt.GetHistoryTask};let Me;if(jn()||(Me=await dn.getPrintHistoryList(a.value,_e,1e4*3)),Me.error_code!==0)return Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.getHistoryFailed")),[];{const it=Me.history_task_list.sort((zt,Fi)=>Fi.begin_time-zt.begin_time);return d.value=it,f.value=HI(it),it}}catch(_e){return Lt(xt.CustomMessage,0,"error",s("toastMessages.getHistoryFailed")+_e.message),[]}finally{o.value=!1}}async function cte(_e=!1){if(y.value)return[];try{y.value=!0,_e?h.value+=1:(h.value=1,d.value=[],f.value=[]);const Me={method:Rt.GetHistoryTask};Pe.log(`RTM历史列表请求: 第${h.value}页, 每页${p.value}条`);const it=await Ku.getPrintHistoryList(a.value,Me,h.value,p.value);if(it.error_code!==0)return Lt(xt.ErrorCodeAndCustom,it.error_code,"error",s("toastMessages.getHistoryFailed")),[];{g.value=it.total||0,m.value=it.history_task_list.length>=p.value,Pe.log(`RTM懒加载: 第${h.value}页, 返回${it.history_task_list.length}条, 总计${g.value}条, 还有更多: ${m.value}`);const zt=it.history_task_list.sort((Fi,Vr)=>Vr.begin_time-Fi.begin_time);return _e?d.value=[...d.value,...zt]:d.value=zt,f.value=HI(d.value),zt}}catch(Me){return Lt(xt.CustomMessage,0,"error",s("toastMessages.getHistoryFailed")+Me.message),[]}finally{y.value=!1}}function HI(_e){return _e.map(Me=>({Thumbnail:"",TaskName:Me.task_name,BeginTime:Me.begin_time,EndTime:Me.end_time,TaskStatus:Me.task_status,SliceInformation:{},AlreadyPrintLayer:0,TaskId:Me.task_id,MD5:"",CurrentLayerTalVolume:0,TimeLapseVideoStatus:Me.time_lapse_video_status,TimeLapseVideoUrl:Me.time_lapse_video_url,TimeLapseVideoSize:Me.time_lapse_video_size,TimeLapseVideoDuration:Me.time_lapse_video_duration,ErrorStatusReason:0}))}async function lte(_e){try{o.value=!0;const Me={method:Rt.HistoryDelete,params:{list:_e}};let it;jn()||(it=await dn.deletePrintHistory(a.value,Me)),it.error_code!==0&&Lt(xt.ErrorCodeAndCustom,it.error_code,"error",s("toastMessages.delHistoryFailed"))}catch(Me){Lt(xt.CustomMessage,0,"error",s("toastMessages.delHistoryFailed")+Me.message)}finally{o.value=!1}}async function zI(){try{o.value=!0;const _e={method:Rt.GetLivingVideoUrl},Me=await dn.getLivingVideoUrl(a.value,_e);return Me.error_code!==0?(Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.getLivingVideoUrl")),""):(z.value=Me.url,Me.url)}catch(_e){return Pe.error("Failed to get living video URL: "+_e.message),""}finally{o.value=!1}}async function ute(){try{o.value=!0;const _e={method:Rt.Feed};let Me;jn()||(Me=await dn.feed(a.value,_e,1e4*6*5)),Me.error_code!==0&&Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.feedFailed"))}catch(_e){Lt(xt.CustomMessage,0,"error",s("toastMessages.feedFailed")+_e.message)}finally{o.value=!1}}async function dte(){try{o.value=!0;const _e={method:Rt.Retreat};let Me;jn()||(Me=await dn.retreat(a.value,_e,1e4*6*5)),Me.error_code!==0&&Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.UnloadFilamentFailed"))}catch(_e){Lt(xt.CustomMessage,0,"error",s("toastMessages.UnloadFilamentFailed")+_e.message)}finally{o.value=!1}}async function fte(_e){try{o.value=!0;const Me={method:Rt.LightSwitch,params:{power:_e?1:0}};let it;return jn()||(it=await dn.setLight(a.value,Me)),it.error_code!==0?(Lt(xt.ErrorCodeAndCustom,it.error_code,"error",s("toastMessages.executionFailed")),!1):!0}catch(Me){return Lt(xt.CustomMessage,0,"error",s("toastMessages.executionFailed")+Me.message),!1}finally{o.value=!1}}async function hte(_e){try{o.value=!0;const Me={method:Rt.FanControl,params:{..._e.modelFanSpeed!==void 0&&{fan:_e.modelFanSpeed},..._e.chassisFanSpeed!==void 0&&{box_fan:_e.chassisFanSpeed},..._e.auxiliaryFanSpeed!==void 0&&{aux_fan:_e.auxiliaryFanSpeed}}};let it;return jn()||(it=await dn.setFan(a.value,Me)),it.error_code!==0?(Lt(xt.ErrorCodeAndCustom,it.error_code,"error",s("toastMessages.executionFailed")),!1):!0}catch(Me){return Lt(xt.CustomMessage,0,"error",s("toastMessages.executionFailed")+Me.message),!1}finally{o.value=!1}}async function pte(_e,Me=!0){try{o.value=!0;const it={method:Rt.PrintSpeedControl,params:{mode:_e}};let zt;return jn()||(zt=await dn.setPrintSpeed(a.value,it)),zt.error_code!==0?(Me&&Lt(xt.ErrorCodeAndCustom,zt.error_code,"error",s("toastMessages.executionFailed")),!1):!0}catch(it){return Me&&Lt(xt.CustomMessage,0,"error",s("toastMessages.executionFailed")+it.message),!1}finally{o.value=!1}}async function mte(){try{o.value=!0;const _e={method:Rt.AutoLeveling},Me=await dn.autoLeveling(a.value,_e);Me.error_code!==0&&Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.executionFailed"))}catch(_e){Lt(xt.CustomMessage,0,"error",s("toastMessages.executionFailed")+_e.message)}finally{o.value=!1}}async function gte(){try{o.value=!0;const _e={method:Rt.VibrationOptimize},Me=await dn.vibrationOptimize(a.value,_e);Me.error_code!==0&&Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.executionFailed"))}catch(_e){Lt(xt.CustomMessage,0,"error",s("toastMessages.executionFailed")+_e.message)}finally{o.value=!1}}async function vte(){try{o.value=!0;const _e={method:Rt.PIDDetect},Me=await dn.pidDetect(a.value,_e);Me.error_code!==0&&Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.executionFailed"))}catch(_e){Lt(xt.CustomMessage,0,"error",s("toastMessages.executionFailed")+_e.message)}finally{o.value=!1}}async function yte(){try{o.value=!0;const _e={method:Rt.OneKeyCheck,params:{ringing_optimize:!0,pid_check:!0,auto_bed_leveling:!0}},Me=await dn.oneKeyCheck(a.value,_e);Me.error_code!==0&&Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.executionFailed"))}catch(_e){Lt(xt.CustomMessage,0,"error",s("toastMessages.executionFailed")+_e.message)}finally{o.value=!1}}async function l2(){try{o.value=!0;const _e={method:Rt.GetSystemInfo};let Me;jn()||(Me=await dn.getSystemInfo(a.value,_e)),Me.error_code!==0?Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.GetSystemInfoFailed")):i.value=Me}catch(_e){Lt(xt.CustomMessage,0,"error",s("toastMessages.GetSystemInfoFailed")+_e.message)}finally{o.value=!1}}async function xu(){try{o.value=!0;const _e={method:Rt.GetBasicInfo};let Me;jn()||(Me=await dn.getBaseInfo(a.value,_e)),Me.error_code!==0&&Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.GetBaseInfoFailed"))}catch(_e){Lt(xt.CustomMessage,0,"error",s("toastMessages.GetBaseInfoFailed")+_e.message)}finally{o.value=!1}}async function rZe(){try{o.value=!0;const _e={method:Rt.GetBasicInfo},Me=await Ku.getBaseInfoIPC(a.value,_e);return O.value=Me,c2(O.value),Me}catch(_e){throw new Error(s("toastMessages.GetBaseInfoFailed")+_e.message)}finally{o.value=!1}}async function Ete(_e){try{o.value=!0;const Me={method:Rt.SetDeviceName,params:{hostname:_e}};let it;jn()||(it=await dn.setDeviceName(a.value,Me)),it.error_code!==0&&Zt.error(s("toastMessages.executionFailed"))}catch{Zt.error(s("toastMessages.executionFailed"))}finally{o.value=!1}}async function bte(){try{o.value=!0;const _e={method:Rt.OTAUpgrade};let Me;jn()||(Me=await dn.otaUpgrade(a.value,_e)),Me.error_code!==0&&Zt.error(s("toastMessages.otaUpgradeFailed"))}catch{Zt.error(s("toastMessages.otaUpgradeFailed"))}finally{o.value=!1}}async function Ste(){try{o.value=!0;const _e={method:Rt.UrgentStop};let Me;jn()||(Me=await dn.urgentStop(a.value,_e)),Me.error_code!==0&&Zt.error(s("toastMessages.executionFailed"))}catch{Zt.error(s("toastMessages.executionFailed"))}finally{o.value=!1}}async function Ate(_e){try{o.value=!0;const Me={method:Rt.XYZHomeControl,params:{homed_axes:_e.toLowerCase()}};let it;jn()||(it=await dn.xyzHomeControl(a.value,Me,5e3*10)),it.error_code!==0&&Lt(xt.ErrorCodeAndCustom,it.error_code,"error",s("toastMessages.SetHomeZeroFailed"))}catch(Me){Lt(xt.CustomMessage,0,"error",s("toastMessages.SetHomeZeroFailed")+Me.message)}finally{o.value=!1}}async function Cte(_e,Me){try{if(o.value=!0,await xu(),!v.value.includes(_e.toLowerCase())){Lt(xt.CustomMessage,0,"error",s("toastMessages.homingBeforeMove"));return}const it={method:Rt.XYZMoveControl,params:{axes:_e.toLowerCase(),distance:Me}};let zt;jn()||(zt=await dn.xyzMoveControl(a.value,it,5e3*5)),zt.error_code!==0&&Lt(xt.ErrorCodeAndCustom,zt.error_code,"error",s("toastMessages.SetAxisMoveFailed"))}catch(it){Lt(xt.CustomMessage,0,"error",s("toastMessages.SetAxisMoveFailed")+it.message)}finally{o.value=!1}}async function wte(_e){try{o.value=!0;const Me={method:Rt.GetTimeLapseVideoList,params:{url:_e}},it=await dn.getTimeLapseVideoList(a.value,Me);it.error_code!==0?Lt(xt.ErrorCodeAndCustom,it.error_code,"error",s("toastMessages.executionFailed")):b.value.push(it.url)}catch(Me){Lt(xt.CustomMessage,0,"error",s("toastMessages.executionFailed")+Me.message)}finally{o.value=!1}}async function Tte(_e){try{o.value=!0;const Me={method:Rt.TemperatureControl,params:_e};let it;jn()||(it=await dn.temperatureControl(a.value,Me)),it.error_code!==0&&Lt(xt.ErrorCodeAndCustom,it.error_code,"error",s("toastMessages.SetTemperatureFailed"))}catch(Me){Lt(xt.CustomMessage,0,"error",s("toastMessages.SetTemperatureFailed")+Me.message)}finally{o.value=!1}}async function Ite(_e,Me){try{o.value=!0;const it={method:Rt.LoadFilamenting,params:{canvas_id:_e,tray_id:Me}};let zt;if(jn()||(zt=await dn.loadFilamentCanvas(a.value,it,1e4*6*5)),zt.error_code!==0)return Lt(xt.ErrorCodeAndCustom,zt.error_code,"error",s("toastMessages.LoadFilamentFailed")),!1;if(zt.error_code===0)return!0}catch(it){Lt(xt.CustomMessage,0,"error",s("toastMessages.LoadFilamentFailed")+it.message)}finally{o.value=!1}}async function Pte(_e,Me){try{o.value=!0;const it={method:Rt.UnloadFilamenting,params:{canvas_id:_e,tray_id:Me}};let zt;if(jn()||(zt=await dn.unloadFilamentCanvas(a.value,it,1e4*6*5)),zt.error_code!==0)return Lt(xt.ErrorCodeAndCustom,zt.error_code,"error",s("toastMessages.UnloadFilamentFailed")),!1;if(zt.error_code===0)return!0}catch(it){Lt(xt.CustomMessage,0,"error",s("toastMessages.UnloadFilamentFailed")+it.message)}}async function Ote(_e){try{o.value=!0;const Me={method:Rt.SetMonoFilamentInfo,params:_e};let it;return jn()||(it=await dn.setMonoFilamentInfo(a.value,Me)),it.error_code!==0?(Lt(xt.ErrorCodeAndCustom,it.error_code,"error",s("toastMessages.SetFilamentInfoFailed")),!1):!0}catch(Me){return Lt(xt.CustomMessage,0,"error",s("toastMessages.SetFilamentInfoFailed")+Me.message),!1}finally{o.value=!1}}async function r1(){try{if(!u.value||$.value)return!1;o.value=!0;const _e={method:Rt.GetMonoFilamentInfo};let Me;return jn()||(Me=await dn.getMonoFilamentInfo(a.value,_e)),Me.error_code!==0?(Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.GetFilamentInfoFailed")),!1):(T.value=Me.mono_filament_info,!0)}catch(_e){return Lt(xt.CustomMessage,0,"error",s("toastMessages.GetFilamentInfoFailed")+_e.message),!1}finally{o.value=!1}}async function _te(_e){try{o.value=!0;const Me={method:Rt.SetFilamentInfo,params:_e};let it;return jn()||(it=await dn.setFilamentInfoCanvas(a.value,Me)),it.error_code!==0?(Lt(xt.ErrorCodeAndCustom,it.error_code,"error",s("toastMessages.SetFilamentInfoFailed")),!1):!0}catch(Me){Lt(xt.CustomMessage,0,"error",s("toastMessages.SetFilamentInfoFailed")+Me.message)}finally{o.value=!1}}async function Rte(_e){try{o.value=!0;const Me={method:Rt.SetAutoFillFilament,params:{auto_refill:_e}};let it;return jn()||(it=await dn.setAutoFillFilamentCanvas(a.value,Me)),it.error_code!==0?(Lt(xt.ErrorCodeAndCustom,it.error_code,"error",s("toastMessages.SetAutoRefillFailed")),!1):!0}catch(Me){return Lt(xt.CustomMessage,0,"error",s("toastMessages.SetAutoRefillFailed")+Me.message),!1}}async function kte(){try{o.value=!0;const _e={method:Rt.GetCanvasInfo};let Me;jn()||(Me=await dn.getCanvasInfoCanvas(a.value,_e)),Me.error_code!==0?Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.GetCanvasInfoFailed")):Me.error_code===0&&(E.value=Me)}catch(_e){Lt(xt.CustomMessage,0,"error",s("toastMessages.GetCanvasInfoFailed")+_e.message)}finally{o.value=!1}}async function WI(){try{o.value=!0;const _e={method:Rt.GetAIDetectionSettings},Me=await Ku.getAIDetectionSettings(a.value,_e);Me.error_code!==0?Lt(xt.ErrorCodeAndCustom,Me.error_code,"error",s("toastMessages.GetAIDetectionSettingsFailed")):k.value=Me}catch(_e){Lt(xt.CustomMessage,0,"error",s("toastMessages.GetAIDetectionSettingsFailed")+_e.message)}}async function xte(_e){try{o.value=!0;const Me={method:Rt.SetAIDetectionSettings,params:_e};let it;if(jn(),it.error_code!==0)Lt(xt.ErrorCodeAndCustom,it.error_code,"error",s("toastMessages.SetAIDetectionSettingsFailed"));else return it}catch(Me){Lt(xt.CustomMessage,0,"error",s("toastMessages.SetAIDetectionSettingsFailed")+Me.message)}}return{isExecutingCommand:o,isConnected:c,websocketHistorytaskDetails:f,deviceControlModel:I,isPrinting:U,isPrintPrinting:Ht,isPrintPaused:_t,elapsedPrintTime:ge,remainingPrintTime:ie,printerInfo:L,curPrintFileName:Kee,status:Ie,subStatus:Ce,lastSubStatus:oe,deviceStatus:O,deviceAttributes:i,totalPrintLayer:Z,isIdle:de,isPrintStopped:kn,isInitializeComplete:Jee,isOTAInfoUpdating:Hee,isOTADownloading:zee,isOTAExtracting:Wee,isOTAUpdating:Vee,isOTAComplete:BI,isOTAFailed:Gee,isBiteFilamentEnd:Ree,isCutFilament:kee,isEjectFilament:xee,isEjectFilamentComplete:Dee,isResonanceOptimizing:Mee,isResonanceCompleted:Bee,isAutoLeveling:Uee,isAutoLevelingComplete:jee,isPrintCompleted:Jn,isPrintStopping:oi,isPrintPausing:Se,isPrintResuming:Oe,isPrintResumed:ct,isPrintHotendPreheating:gt,isPrintHotendCooling:Et,isPrintBedPreheating:$n,isPrintBedCooling:Mi,isPrintHoming:$o,isPrintHomed:Tl,isPrintAutoLeveling:ua,isPrintAutoLevelingComplete:Ve,isPrintEjectFilament:Ct,isPrintUnloadCheckFilamentCanvas:un,isPrintUnloadCutFilamentCanvas:hr,isPrintUnloadDrawFilamentCanvas:si,isPrintLoadNozzleHeatingCanvas:No,isPrintLoadManualInsertFilamentCanvas:Bi,isPrintLoadCutFilamentCanvas:Mo,isPrintLoadDrawFilamentCanvas:o0,isPrintLoadPushFilamentCanvas:A6,isPrintLoadFlushFilamentCanvas:Oee,isPrintLoadCompleteCanvas:_ee,isMainLoading:we,isMainUnLoading:Ae,isMainAutoLevel:Le,isMainResonanceTesting:Ee,isMainPid:ue,isMainUpgrade:Xe,isMainHoming:qe,isPidCompleted:Fee,isHomed:ht,isMainFileSending:It,isMainExtrudering:We,isMainSelfTest:He,isMainInitializing:x,isMainConnected:N,isPaused:qt,isFilamentInterruption:nn,currentThumbnail:J,currentPrintThumbnail:Y,canvas:E,historytaskDetails:d,videoGeneratedSuccessUrls:b,canvasConnected:$,isLoadCompleteCanvas:Nee,canvasAutoRefill:ae,getFileDetail:jI,exportTimeLapse:wte,startPrint:tte,pausePrint:nte,resumePrint:rte,stopPrint:ite,loadFilament:ute,unloadFilament:dte,setLight:fte,setFanSpeed:hte,setPrintSpeedPct:pte,autoLeveling:mte,vibrationOptimize:gte,pidDetect:vte,oneKeyCheck:yte,getSystemInfo:l2,getBaseInfo:xu,setDeviceName:Ete,otaUpgrade:bte,urgentStop:Ste,xyzHomeControl:Ate,xyzMoveControl:Cte,temperatureControl:Tte,getFileList:ote,deletePrintFile:ste,getPrintHistoryList:ate,getPrintHistoryListLazy:cte,deletePrintHistory:lte,rtmHistoryCurrentPage:h,rtmHistoryPageSize:p,rtmHistoryTotal:g,rtmHistoryHasMore:m,rtmHistoryLoading:y,getLivingVideoUrl:zI,getFileThumbnail:UI,isRegisterSuccess:u,currentPrintPathType:M,setFilamentInfoCanvas:_te,setAutoFillFilamentCanvas:Rte,getCanvasInfoCanvas:kte,loadFilamentCanvas:Ite,unloadFilamentCanvas:Pte,setMonoFilamentInfo:Ote,isSubGeneratingTimeLapse:Zee,isSubGeneratingTimeLapseComplete:Yee,isSubGeneratingTimeLapseFailed:Xee,previewFileDetail:_,exceptionCodeList:q,monoFilamentInfo:T,LoadedSlotId:ee,currentSendingFileName:S,currentUploadFileProgress:w,isUDiskInserted:j,isFilamentDrivingStatus:Ne,currentActiveTrayId:pe,lastLoadedSlotId:K,isUnloadCompleteCanvas:Lee,livingVideoUrl:z,cameraConnection:re,printerBusy:A,isMainPowerOffResume:$e,isPowerOffResuming:Qee,aiDetectionSettings:k,isCameraUpgraded:me,setExceptionCodeList:$ee,getMonoFilamentInfo:r1,getAIDetectionSettings:WI,setAIDetectionSettings:xte,isChassisLightUpgraded:te,isAuxiliaryFanUpgraded:fe,isExhaustGrilleUpgraded:le,isChassisFanUpgraded:ve,isNeedShowAiSetting:X}}),Ije=oy("vide-stream",()=>{const e=se(!1),t=se(!1),n=se(0),r=V(()=>{if(!t.value)return"";let l="";if(l=o.livingVideoUrl,l){const u=l.includes("?")?"&":"?";return`${l}${u}_t=${n.value}`}return l}),i=El(),o=di(),s=V(()=>!0);async function a(){try{if(Pe.log("[VIDEO-STORE] openVideoStream 开始, 当前 isPlaying:",t.value,"protocolType:",Ws.protocolType),e.value=!0,await new Promise(l=>setTimeout(l,1e3)),Ws.protocolType==="MQTT"&&o.isCameraUpgraded)await o.getLivingVideoUrl(),n.value=Date.now(),t.value=!t.value;else{const l=await i.openVideoStream(!t.value);Yt(l)?(n.value=Date.now(),t.value=!t.value):(Zt.error("Video stream is not available"),t.value=!1)}}catch(l){Zt.error(l.message)}finally{e.value=!1}}async function c(){o.isCameraUpgraded&&(e.value=!0,await o.getLivingVideoUrl(),n.value=Date.now(),e.value=!1)}return{isLoading:e,videoUrl:r,isPlaying:t,openVideoStream:a,cameraConnection:s,getVideoStreamUrl:c,refreshKey:n}}),Eee=oy("host",()=>({curPrintHost:se("")})),Pje={class:"file-name font-size18 color-white-65 status-text-margin"},Oje={class:"status-text"},_je=Je({__name:"print-status",props:["status","subStatus","isMQTTConnected","lastSubStatus"],setup(e){const{t}=Eo(),n=e,r=()=>{if((n.status===Ge.Printing||n.status==Ge.ManualHoming||n.status==Ge.FileSending||n.status==Ge.TimeLapseVideoGenerating||n.status==Ge.AutoLeveling||n.status==Ge.PidCalibration||n.status==Ge.ResonanceTester||!n.isMQTTConnected)&&pp())return!1},i=()=>{if(n.status==Ge.FileSending&&n.isMQTTConnected)return bbe();if(n.status==Ge.PidCalibration)return t("printStatus.pidTun");if(n.status==Ge.ResonanceTester)return t("printStatus.inputShape");if(n.status==Ge.SelfCheck)return t("printStatus.deviceSelfCheck");if(n.status==Ge.Upgrade)return t("printStatus.upgrade");if(n.status==Ge.ComponentUpgrade)return t("printStatus.componentUpgrade");if(n.status==Ge.AutoLeveling)return t("printStatus.autoLevel")},o=()=>n.isMQTTConnected?n.status===Ge.Printing||n.status==Ge.Idle||n.status==Ge.FileSending||n.status==Ge.Loading||n.status==Ge.UnLoading||n.status==Ge.ManualHoming||n.status==Ge.Extrudering||n.status==Ge.TimeLapseVideoGenerating||n.status==Ge.Extrudering||n.status==Ge.PowerOffResume?s.value:a():t("printStatus.offline");V(()=>{switch(n.status){case wt.Idle:return t("printStatus.idle");case wt.Resuming:return t("printStatus.resuming");case wt.Printing:return t("printStatus.printing");case wt.Pausing:return t("printStatus.pausing");case wt.Paused:return t("printStatus.paused");case wt.Stopping:return t("printStatus.stopping");case wt.Stopped:return t("printStatus.stopped");case wt.Error:return t("printStatus.deviceBusy");case wt.AutoLeveled:case wt.Preheated:case wt.Preparing:return t("printStatus.preparing");case wt.FileUploading:return t("printStatus.fileUploading");case wt.Completed:return t("printStatus.completed");case wt.DeviceTesting:return t("printStatus.deviceSelfChecking");case wt.AutoLevel:return t("printStatus.autoLeveling");case wt.ResonanceTesting:return t("printStatus.inputShaping");case wt.Busy:return t("printStatus.deviceBusy");case wt.FileChecking:return t("printStatus.fileChecking");case wt.Homing:return t("printStatus.homing");case wt.FeedOut:return t("printStatus.unloading");case wt.PIDDetect:return t("printStatus.pidTuning");case wt.Preheating:return t("printStatus.preheating");default:return""}});const s=V(()=>{switch(n.status){case Ge.Idle:return t("printStatus.idle");case Ge.Printing:switch(n.subStatus){case De.HotendPreheating:case De.HotendCooling:return t("printStatus.nozzleHeating");case De.BedPreheating:case De.BedCooling:return t("printStatus.bedPreheating");case De.Homing:case De.Homed:return t("printStatus.homing");case De.AutoLeveling:case De.AutoLevelingComplete:return t("printStatus.autoLeveling");case De.Pausing:return t("printStatus.pausing");case De.Paused:return t("printStatus.paused");case De.Interruption:return t("printStatus.filamentInterruption");case De.Resuming:case De.Resumed:return t("printStatus.resuming");case De.Stopping:return t("printStatus.stopping");case De.Stopped:return t("printStatus.stopped");case De.PrintComplete:return t("printStatus.completed");case De.UnloadNozzleHeatingCanvas:case De.UnloadCheckFilamentCanvas:case De.UnloadCutFilamentCanvas:case De.UnloadDrawFilamentCanvas:return t("printStatus.unloading");case De.LoadNozzleHeatingCanvas:case De.LoadManualInsertFilamentCanvas:case De.LoadCutFilamentCanvas:case De.LoadDrawFilamentCanvas:case De.LoadPushFilamentCanvas:case De.LoadFlushFilamentCanvas:case De.LoadCompleteCanvas:return t("printStatus.loading");case De.Printing:return t("printStatus.printing");default:return""}case Ge.Loading:switch(n.subStatus){case De.NozzleHeating:case De.ManualInsertFilament:case De.BiteFilament:case De.BiteFilamentEnd:case De.CutFilament:case De.EjectFilament:case De.LoadNozzleHeatingCanvas:case De.LoadManualInsertFilamentCanvas:case De.LoadCutFilamentCanvas:case De.LoadDrawFilamentCanvas:case De.LoadPushFilamentCanvas:case De.LoadFlushFilamentCanvas:return t("printStatus.loading");default:return t("printStatus.preparing")}case Ge.UnLoading:switch(n.subStatus){case De.CutFilament:case De.EjectFilament:case De.UnloadNozzleHeatingCanvas:case De.UnloadCheckFilamentCanvas:case De.UnloadCutFilamentCanvas:case De.UnloadDrawFilamentCanvas:return t("printStatus.unloading");default:return t("printStatus.preparing")}case Ge.Extrudering:switch(n.subStatus){case De.ExtruderLoading:case De.ExtruderLoadComplete:return t("printStatus.loading");case De.ExtruderUnloading:case De.ExtruderUnloadingComplete:return t("printStatus.unloading");default:return t("printStatus.preparing")}case Ge.AutoLeveling:return t("printStatus.autoLeveling");case Ge.PidCalibration:return t("printStatus.pidTuning");case Ge.ResonanceTester:return t("printStatus.inputShaping");case Ge.SelfCheck:return t("printStatus.deviceSelfChecking");case Ge.Upgrade:return t("printStatus.upgrading");case Ge.ComponentUpgrade:return t("printStatus.componentUpgrading");case Ge.ManualHoming:return t("printStatus.homing");case Ge.FileSending:return t("printStatus.fileSending");case Ge.TimeLapseVideoGenerating:return t("printStatus.timeLapseVideoGenerating");case Ge.PowerOffResume:switch(n.subStatus){case De.Default:return t("printStatus.powerOffResumeWait");default:return t("printStatus.powerOffResume")}default:return"未知主状态:"+n.status}}),a=()=>{if(n.status==Ge.AutoLeveling)return t("printStatus.autoLeveling");if(n.status==Ge.PidCalibration)return t("printStatus.pidTuning");if(n.status==Ge.ResonanceTester)return t("printStatus.inputShaping");if(n.status==Ge.Upgrade)return t("printStatus.upgrading");if(n.status==Ge.ComponentUpgrade)return t("printStatus.componentUpgrading");if(n.status==Ge.SelfCheck)switch(n.subStatus){case De.PidPreheating:case De.PidDetecting:case De.PidCompleted:case De.PidFailed:return t("printStatus.pidTuning");case De.ResonanceOptimizing:case De.ResonanceOptimized:case De.ResonanceOptimizeFailed:case De.AccelerometerNormal:case De.AccelerometerError:return t("printStatus.inputShaping");case De.AutoLeveling:case De.AutoLevelingComplete:return t("printStatus.autoLeveling");default:return""}switch(n.subStatus){case De.OTAInfoUpdating:case De.OTADownloading:case De.OTAExtracting:case De.OTAUpdating:case De.OTAComplete:return t("printStatus.upgrading");case De.Pausing:return t("printStatus.pausing");case De.Paused:return t("printStatus.paused");case De.Interruption:return t("printStatus.filamentInterruption");case De.Resuming:return t("printStatus.resuming");case De.Resumed:return t("printStatus.resumed");case De.Stopping:return t("printStatus.stopping");case De.Stopped:return t("printStatus.stopped");default:return""}};V(()=>{switch(n.status){case wt.Idle:return"status-idle";case wt.Resuming:case wt.FileUploading:case wt.FileChecking:case wt.DeviceTesting:case wt.AutoLevel:case wt.ResonanceTesting:case wt.Homing:case wt.FeedOut:case wt.PIDDetect:case wt.Preparing:case wt.Preheating:case wt.Preheated:case wt.AutoLeveled:return"status-preparing";case wt.Printing:return"status-printing";case wt.Pausing:return"status-pausing";case wt.Paused:return"status-paused";case wt.Stopping:return"status-stopping";case wt.Stopped:return"status-stopped";case wt.Error:return"status-error";case wt.Busy:return"status-busy";case wt.Completed:return"status-completed";default:return"status-other"}});const c=V(()=>{if(!n.isMQTTConnected)return"status-error";switch(n.status){case Ge.Idle:return"status-idle";case Ge.Printing:switch(n.subStatus){case De.Paused:case De.Interruption:return"status-paused";case De.Stopped:return"status-stopped";case De.PrintComplete:return"status-completed";case De.Pausing:return"status-pausing";case De.Stopping:return"status-stopping";default:return"status-printing"}case Ge.PowerOffResume:switch(n.subStatus){case De.Default:return"status-paused";default:return"status-printing"}case Ge.Loading:case Ge.UnLoading:case Ge.Extrudering:case Ge.AutoLeveling:case Ge.PidCalibration:case Ge.ResonanceTester:case Ge.SelfCheck:case Ge.ManualHoming:case Ge.FileSending:case Ge.TimeLapseVideoGenerating:case Ge.Upgrade:case Ge.ComponentUpgrade:return"status-preparing";default:return"status-other"}}),l=V(()=>c.value);V(()=>{switch(n.status){case wt.Idle:return DO;case wt.Resuming:case wt.FileUploading:case wt.FileChecking:case wt.Preparing:case wt.Printing:case wt.DeviceTesting:case wt.AutoLevel:case wt.ResonanceTesting:case wt.Homing:case wt.FeedOut:case wt.PIDDetect:case wt.Stopping:case wt.Pausing:case wt.Preheating:case wt.Preheated:case wt.AutoLeveled:return A2;case wt.Paused:return xO;case wt.Stopped:return NO;case wt.Error:case wt.Busy:return MO;case wt.Completed:return LO;default:return null}});const u=V(()=>{if(!n.isMQTTConnected)return MO;switch(n.status){case Ge.Idle:return DO;case Ge.Printing:switch(n.subStatus){case De.Paused:case De.Interruption:return xO;case De.Stopped:return NO;case De.PrintComplete:return LO;default:return A2}case Ge.PowerOffResume:switch(n.subStatus){case De.Default:return Nue;default:return A2}case Ge.Loading:case Ge.UnLoading:case Ge.Extrudering:case Ge.AutoLeveling:case Ge.PidCalibration:case Ge.ResonanceTester:case Ge.SelfCheck:case Ge.ManualHoming:case Ge.FileSending:case Ge.TimeLapseVideoGenerating:case Ge.Upgrade:case Ge.ComponentUpgrade:return A2;default:return null}}),d=V(()=>u.value);V(()=>{const p=n.status;return p===wt.Resuming||p===wt.Printing||p===wt.Pausing||p===wt.Stopping||p===wt.Preparing||p===wt.FileUploading||p===wt.FileChecking||p===wt.DeviceTesting||p===wt.AutoLevel||p===wt.ResonanceTesting||p===wt.Homing||p===wt.FeedOut||p===wt.PIDDetect||p===wt.Preheating||p===wt.Preheated||p===wt.AutoLeveled?"is-loading":""});const f=V(()=>{if(!n.isMQTTConnected)return"";const p=n.status;return p===Ge.Loading||p===Ge.UnLoading||p===Ge.Extrudering||p===Ge.AutoLeveling||p===Ge.PidCalibration||p===Ge.ResonanceTester||p===Ge.SelfCheck||p===Ge.ManualHoming||p===Ge.Upgrade||p===Ge.FileSending||p===Ge.TimeLapseVideoGenerating||p===Ge.ComponentUpgrade||p===Ge.PowerOffResume&&n.subStatus!==De.Default||p===Ge.Printing&&n.subStatus!==De.Paused&&n.subStatus!==De.Stopped&&n.subStatus!==De.PrintComplete&&n.subStatus!==De.Interruption?"is-loading":""}),h=V(()=>f.value);return(p,g)=>(ne(),Te(Ft,null,[G("span",Pje,Ue(i()),1),vn(G("span",{class:"file-name font-size18 color-white-65"},Ue(s.value),513),[[_r,r()]]),G("span",null,[G("span",{class:je([l.value,"status-container"])},[(ne(),Ze(Br(d.value),{class:je([h.value,"mr-1"])},null,8,["class"])),G("span",Oje,Ue(o()),1)],2)])],64))}}),bee=rr(_je,[["__scopeId","data-v-3c12f447"]]),Rje={class:"myDialogHeader font-size14"},kje={style:{margin:"14px 10px"}},xje={class:"dialog-content font-size14"},Dje={style:{textAlign:"center"}},Lje={class:"dialog-footer"},Nje=Je({__name:"confirm-dialog",props:{modelValue:Boolean,confirmTitle:{type:String,required:!0},confirmMessage:{type:String,required:!0},confirmBtnTxt:{type:String,required:!0},showCancelBtn:{type:Boolean,default:!0}},emits:["confirm","update:modelValue","cancel"],setup(e,{emit:t}){const{isMobile:n}=gs(),r=e,i=t,o=V({get:()=>r.modelValue,set:c=>i("update:modelValue",c)}),s=()=>{i("cancel"),o.value=!1},a=()=>{i("confirm"),o.value=!1};return(c,l)=>{const u=pr,d=Zd;return ne(),Ze(d,{modelValue:o.value,"onUpdate:modelValue":l[0]||(l[0]=f=>o.value=f),width:P(n)?"90%":"31%",style:Ut(P(n)?{top:"50%",transform:"translateY(-50%)",padding:0,backgroundColor:"#1c1d1e",borderRadius:"4px",overflow:"hidden"}:{padding:0,backgroundColor:"#1c1d1e",maxWidth:"440px",borderRadius:"4px",overflow:"hidden"}),"show-close":!1,"close-on-click-modal":!1},{header:Re(()=>[G("div",Rje,[G("span",kje,Ue(c.$t(`dialogs.${e.confirmTitle}`)),1),be(u,{class:"close-dialog-btn",type:"info",onClick:s,size:"small"},{default:Re(()=>[be(P(Wd),{style:{width:"14px",height:"14px"}})]),_:1})])]),default:Re(()=>[G("div",xje,[G("p",Dje,Ue(e.confirmMessage),1)]),G("div",Lje,[e.showCancelBtn?(ne(),Ze(u,{key:0,class:"cancel-btn",onClick:s},{default:Re(()=>[yt(Ue(c.$t("buttons.cancel")),1)]),_:1})):Ke("",!0),be(u,{class:"confirm-btn",type:"primary",onClick:a},{default:Re(()=>[yt(Ue(c.$t(`buttons.${e.confirmBtnTxt}`)),1)]),_:1})])]),_:1},8,["modelValue","width","style"])}}}),al=rr(Nje,[["__scopeId","data-v-db1dbc8b"]]),Mje={class:"warning-dialog-header font-size14"},Bje={class:"warning-title"},Fje={style:{"margin-left":"8px"}},Uje={class:"warning-dialog-content font-size14"},jje={class:"warning-message"},Hje={key:0,class:"exception-codes"},zje=Je({__name:"warning-dialog",props:{modelValue:Boolean,warningMessage:{type:String,required:!0},firstExceptionError:{type:Object,default:()=>({})}},emits:["update:modelValue","close"],setup(e,{emit:t}){const{isMobile:n}=gs(),{t:r}=Eo(),i=e,o=t,s=V({get:()=>i.modelValue,set:u=>o("update:modelValue",u)}),a=()=>{o("close"),s.value=!1},c=V(()=>!i.firstExceptionError||typeof i.firstExceptionError.code!="number"?!1:Gue(i.firstExceptionError.code)),l=()=>c.value?r("dialogs.warning"):r("dialogs.errorNotice");return(u,d)=>{const f=Pn,h=pr,p=Zd;return ne(),Ze(p,{modelValue:s.value,"onUpdate:modelValue":d[0]||(d[0]=g=>s.value=g),top:"0",width:P(n)?"90%":"40%",style:Ut(P(n)?{top:"20px",padding:0,backgroundColor:"#1c1d1e","--el-dialog-margin-top":"0",maxHeight:"30vh"}:{top:"20px",padding:0,backgroundColor:"#1c1d1e",maxWidth:"450px","--el-dialog-margin-top":"0",maxHeight:"30vh"}),"show-close":!1,"close-on-click-modal":!1,"close-on-press-escape":!1},{header:Re(()=>[G("div",Mje,[G("div",Bje,[be(f,{class:je(["warning-icon",c.value?"is-severe":"is-info"])},{default:Re(()=>[be(P(j1e))]),_:1},8,["class"]),G("span",Fje,Ue(l()),1)]),be(h,{class:"close-dialog-btn",type:"info",onClick:a,size:"small"},{default:Re(()=>[be(P(Wd),{style:{width:"14px",height:"14px"}})]),_:1})])]),default:Re(()=>[G("div",Uje,[G("div",jje,[G("p",{class:je(c.value?"msg-severe":"msg-info")},Ue(e.warningMessage),3),e.firstExceptionError?(ne(),Te("div",Hje,[G("p",{class:je(["exception-item",c.value?"msg-severe":"msg-info"])},Ue(e.firstExceptionError.message),3)])):Ke("",!0)])])]),_:1},8,["modelValue","width","style"])}}}),Wje=rr(zje,[["__scopeId","data-v-de9bb654"]]);function See(){const e=El(),t=di(),n=V(()=>e.printerInfo),r=se(!1),i=se(!1);Ye(()=>t.isPowerOffResuming,j=>{j?i.value=!0:i.value=!1},{immediate:!0}),Ye(()=>t.status,j=>{Ge.Printing,j===Ge.Idle&&(t.currentPrintThumbnail="")},{immediate:!0});const o=se(!1),s=se(""),a=se({code:0,message:""});Ye(()=>t.exceptionCodeList,j=>{if(j&&j.length>0){if(Pe.log("触发异常码列表更新: ",j),j.includes(zc.NoodleDefect)||j.includes(zc.foreignDetection))return;s.value=m("dialogs.exceptionHappenedGoCheck");const re=Wue(j,m,y.value);if(re){const me=j.filter(X=>X===zc.XMotorDriverError||X===zc.YMotorDriverError||X===zc.ZMotorDriverError||X===zc.ExtruderMotorDriverError),te=me.join("、");a.value.message=`${m("dialogs.errorCodePrefix")}${te}, ${re}`,a.value.code=me[0]}else{const me=j[0],te=zue(me),X=m(te);a.value.message=`${m("dialogs.errorCodePrefix")}${me}, ${X}`,a.value.code=me}o.value=!0,Pe.log("局域网下,弹出警告框后,重置异常码列表"),t.setExceptionCodeList([])}});const c=()=>{o.value=!1},l=V(()=>t.lastSubStatus),u=V(()=>t.printerInfo),d=V(()=>{var j;return(j=t.deviceStatus)==null?void 0:j.machine_status}),f=V(()=>{var re;const j=(re=d.value)==null?void 0:re.progress;return typeof j=="number"&&!isNaN(j)?Math.max(0,Math.min(100,j)):0}),h=V(()=>{var j;return(j=u.value)==null?void 0:j.current_layer}),p=V(()=>t.totalPrintLayer),g=V(()=>t.isPrinting?w9e($J.Base64,t.currentPrintThumbnail):""),{t:m,locale:y}=Eo(),v=se(!1),E=se(!1),b=se(!1),S=se("confirmPausePrint"),w=se("confirmStopPrint"),C=se("powerOffResume"),_=se("confirm"),I=se("confirm"),O=se("resume"),L=V(()=>m("dialogs.confirmPausePrintMsg")),R=V(()=>m("dialogs.confirmStopPrintMsg")),F=V(()=>m("dialogs.powerOffResumeMsg"));function W(){E.value=!0}function J(){b.value=!0}const Y=V(()=>{var j;return((j=t.printerInfo)==null?void 0:j.filename)||t.curPrintFileName});ln(()=>{Ye(z,j=>{(j===wt.Completed||j===wt.Stopped)&&(e.currentThumbnail="")},{immediate:!0})});const M=V(()=>!(t.isPrintHotendPreheating||t.isPrintHotendCooling||t.isPrintBedPreheating||t.isPrintBedCooling||t.isPrintHoming||t.isPrintHomed||t.isPrintAutoLeveling||t.isPrintAutoLevelingComplete||t.isPrintResuming||t.isPrintResumed||t.isPrintPrinting||t.isPrintUnloadCheckFilamentCanvas||t.isPrintUnloadCutFilamentCanvas||t.isPrintUnloadDrawFilamentCanvas||t.isPrintLoadNozzleHeatingCanvas||t.isPrintLoadManualInsertFilamentCanvas||t.isPrintLoadCutFilamentCanvas||t.isPrintLoadDrawFilamentCanvas||t.isPrintLoadPushFilamentCanvas||t.isPrintLoadFlushFilamentCanvas||t.isPrintLoadCompleteCanvas)),B=V(()=>!(t.isPrintPaused||t.isFilamentInterruption)),q=V(()=>t.isPrinting&&(t.isPrintStopping||t.isPrintStopped||t.isPrintCompleted)),z=V(()=>{{const j=t.status,re=t.subStatus,me=re!=null?Pbe(re):"";return Pe.log(`主状态(${j}) 子状态(${re}) (${me})`),t.status}}),A=V(()=>t.subStatus),T=V(()=>t.isFilamentInterruption),k=V(()=>{var j,re;return{name:(j=t.deviceAttributes)==null?void 0:j.hostname,ip:(re=t.deviceAttributes)==null?void 0:re.ip}});return ln(()=>{Ye(()=>t.isRegisterSuccess,j=>{v.value=j},{immediate:!0})}),yc(()=>{r.value=!0}),{printerInfo:n,pauseDisableButton:M,resumeDisableBtn:B,stopDisableBtn:q,status:z,subStatus:A,deviceInfo:k,currentThumbnail:g,showPauseComfirmDialog:E,showStopComfirmDialog:b,showPowerOffResumeDialog:i,pauseComfirmTitle:S,stopComfirmTitle:w,powerOffResumeTitle:C,pauseComfirmMsg:L,stopComfirmMsg:R,powerOffResumeMsg:F,pauseComfirmBtnTxt:_,stopComfirmBtnTxt:I,powerOffResumeBtnTxt:O,displayFileName:Y,curProgress:f,curPrintLayer:h,totalPrintLayer:p,isMQTTConnected:v,pausePrint:W,stopPrint:J,showWarningDialog:o,firstExceptionError:a,warningMessage:s,lastSubStatus:l,closeWarningDialog:c,isFilamentInterruption:T}}var Fc=(e=>(e[e.NotExecuted=0]="NotExecuted",e[e.Executing=1]="Executing",e[e.Success=2]="Success",e[e.Failed=3]="Failed",e))(Fc||{});function Aee(){const e=El(),t=di(),n=t,r=n.deviceControlModel,i=se(0),o=se(0),s=se(0),a=se(0),c=se(!1),l=async()=>{c.value=!1,a.value=1;const R=await n.setLight(!1);a.value=R?2:3},u=()=>{c.value=!1,a.value===0?(a.value=3,Cn(()=>{a.value=0})):a.value=0};Ye(()=>t.subStatus,R=>{(R===De.PrintComplete||R===De.Stopped)&&n.setPrintSpeedPct(MZ.Balanced,!1)});const d=async R=>{i.value=1;let F;F=await t.setFanSpeed({chassisFanSpeed:R/100*255}),i.value=F?2:3},f=async R=>{let F;o.value=1,F=await t.setFanSpeed({auxiliaryFanSpeed:R/100*255}),o.value=F?2:3},h=async R=>{let F;s.value=1,F=await t.setFanSpeed({modelFanSpeed:R/100*255}),s.value=F?2:3},p=async R=>{var J,Y,M,B;const F=(Y=(J=t.aiDetectionSettings)==null?void 0:J.spaghetti_detection)==null?void 0:Y.status,W=(B=(M=t.aiDetectionSettings)==null?void 0:M.foreign_object_detection)==null?void 0:B.status;if(R===0&&(F===rc.On||W===rc.On))c.value=!0;else{a.value=1;const q=await n.setLight(R>0);a.value=q?2:3}},g=V(()=>!e.isIdle),m=V(()=>!t.isPrinting),y=V(()=>t.isMainInitializing||!t.isMainConnected||!t.isChassisLightUpgraded),v=V(()=>!(t.isIdle||t.isPrinting||t.isMainExtrudering||t.isMainExtrudering)||!t.isAuxiliaryFanUpgraded),E=V(()=>!(t.isIdle||t.isPrinting||t.isMainExtrudering||t.isMainExtrudering)||!t.isChassisFanUpgraded),b=V(()=>!(t.isIdle||t.isPrinting||t.isMainExtrudering||t.isMainExtrudering)),S=V(()=>!t.isIdle),w=(R,F)=>(R==="Z"&&(F=F*-1),t.xyzMoveControl(R,r.moveStep*F)),C=R=>t.xyzHomeControl(R),_=se(r.curPrinterMode),I=se(r.curPrinterMode),O=se(!1);Ye(()=>r.curPrinterMode,R=>{O.value||(I.value=R,_.value=R)});const L=async R=>{const F=I.value;O.value=!0;try{await n.setPrintSpeedPct(R)?I.value=R:_.value=F}finally{O.value=!1}};return ln(()=>{}),yc(()=>{}),{onchassisFanSpeedChange:d,onAuxiliaryFanSpeedChange:f,onModelFanSpeedChange:h,onLightChange:p,deviceControlModel:r,controlDisabled:g,move:w,moveToHome:C,setPrintSpeedPct:L,changeSpeedDisabled:m,lightDisabled:y,fanDisabled:b,xyzDisabled:S,uiPrinterMode:_,auxiliaryFanDisabled:v,chassisFanDisabled:E,chassisFanCmdStatus:i,auxiliaryFanCmdStatus:o,modelFanCmdStatus:s,lightCmdStatus:a,onLightOffConfirm:l,showLightOffDialog:c,onLightOffCancel:u}}const Vje={class:"status-container"},Gje={class:"model-image"},Jje=["src"],Zje={class:"flex-1 flex flex-col justify-between ml-[18px]"},Yje={class:"right-first"},Xje={class:"file-name font-size18"},Qje={class:"print-control-buttons"},Kje={class:"right-second"},qje={class:"right-third"},$je={class:"progress-text font-size24"},eHe={style:{"margin-left":"280px"},class:"layer font-size18"},tHe={class:"layer font-size18"},nHe={width:"12",height:"1",viewBox:"0 0 12 1",style:{display:"inline-block","vertical-align":"middle"}},rHe={class:"right-third"},iHe={class:"progress-text font-size24"},oHe=Je({__name:"device-status",setup(e){const t=El(),n=di(),r=n,i=V(()=>n.currentUploadFileProgress>0&&o.value===Ge.FileSending&&L.value),{status:o,pauseDisableButton:s,resumeDisableBtn:a,stopDisableBtn:c,currentThumbnail:l,showPauseComfirmDialog:u,showStopComfirmDialog:d,showPowerOffResumeDialog:f,pauseComfirmTitle:h,stopComfirmTitle:p,powerOffResumeTitle:g,pauseComfirmMsg:m,stopComfirmMsg:y,powerOffResumeMsg:v,pauseComfirmBtnTxt:E,stopComfirmBtnTxt:b,powerOffResumeBtnTxt:S,displayFileName:w,curProgress:C,curPrintLayer:_,totalPrintLayer:I,subStatus:O,isMQTTConnected:L,isFilamentInterruption:R,pausePrint:F,stopPrint:W,showWarningDialog:J,warningMessage:Y,lastSubStatus:M,closeWarningDialog:B,firstExceptionError:q}=See(),z=se(!1),A=()=>{z.value=!0},T=()=>{z.value=!1};return ln(()=>{window.addEventListener("pagehide",()=>{t.onBeforeUnmount()})}),xi(()=>{}),(k,j)=>{const re=Dw,me=pr,te=KG;return ne(),Te("div",Vje,[G("div",Gje,[z.value?Ke("",!0):(ne(),Te("img",{key:0,src:P(EJ),alt:"default",class:"model-thumb"},null,8,Jje)),vn(be(re,{src:P(l),onLoad:A,onError:T},null,8,["src"]),[[_r,!!P(l)]])]),G("div",Zje,[vn(G("div",Yje,[G("span",Xje,Ue(P(w)),1),G("div",Qje,[!P(r).isPaused&&!P(R)?(ne(),Ze(me,{key:0,class:"print-control-button",disabled:P(s),onClick:P(F)},{default:Re(()=>[G("span",null,[be(P(KC))])]),_:1},8,["disabled","onClick"])):Ke("",!0),P(r).isPaused||P(R)?(ne(),Ze(me,{key:1,class:"print-control-button",disabled:P(a),onClick:j[0]||(j[0]=X=>P(r).resumePrint(1e4*6))},{default:Re(()=>[G("span",null,[be(P(QC))])]),_:1},8,["disabled"])):Ke("",!0),be(me,{class:"print-control-button",disabled:P(c),onClick:P(W)},{default:Re(()=>[G("span",null,[be(P($W))])]),_:1},8,["disabled","onClick"])])],512),[[_r,P(r).isPrinting]]),G("div",Kje,[be(bee,{status:P(o),subStatus:P(O),isMQTTConnected:P(L),lastSubStatus:P(M)},null,8,["status","subStatus","isMQTTConnected","lastSubStatus"])]),vn(G("div",qje,[G("span",$je,[yt(Ue(P(C)),1),j[6]||(j[6]=G("span",{class:"font-size16"},"%",-1))]),G("span",eHe,[yt(Ue(k.$t("printStatus.layerProgress")),1),j[7]||(j[7]=G("span",{class:"mr-1 layer font-size18"},":",-1)),yt(" "+Ue(P(_))+"/"+Ue(P(I)),1)]),G("span",tHe,[(ne(),Te("svg",nHe,[...j[8]||(j[8]=[G("line",{x1:"0",y1:"0.5",x2:"12",y2:"0.5",stroke:"currentColor","stroke-width":"1"},null,-1)])])),yt(Ue(P(eZ)(P(r).remainingPrintTime)),1)])],512),[[_r,P(r).isPrinting]]),vn(G("div",rHe,[G("span",iHe,[yt(Ue(P(n).currentUploadFileProgress),1),j[9]||(j[9]=G("span",{class:"font-size16"},"%",-1))])],512),[[_r,i.value]]),vn(be(te,{percentage:P(C),"show-text":!1,"stroke-width":8},null,8,["percentage"]),[[_r,P(r).isPrinting]]),vn(be(te,{percentage:P(n).currentUploadFileProgress,"show-text":!1,"stroke-width":8},null,8,["percentage"]),[[_r,i.value]])]),be(al,{modelValue:P(u),"onUpdate:modelValue":j[1]||(j[1]=X=>En(u)?u.value=X:null),"confirm-title":P(h),"confirm-message":P(m),"confirm-btn-txt":P(E),onConfirm:P(r).pausePrint},null,8,["modelValue","confirm-title","confirm-message","confirm-btn-txt","onConfirm"]),be(al,{modelValue:P(d),"onUpdate:modelValue":j[2]||(j[2]=X=>En(d)?d.value=X:null),"confirm-title":P(p),"confirm-message":P(y),"confirm-btn-txt":P(b),onConfirm:P(r).stopPrint},null,8,["modelValue","confirm-title","confirm-message","confirm-btn-txt","onConfirm"]),be(al,{modelValue:P(f),"onUpdate:modelValue":j[3]||(j[3]=X=>En(f)?f.value=X:null),"confirm-title":P(g),"confirm-message":P(v),"confirm-btn-txt":P(S),onConfirm:j[4]||(j[4]=X=>P(r).resumePrint(1e4*6*2)),onCancel:P(r).stopPrint},null,8,["modelValue","confirm-title","confirm-message","confirm-btn-txt","onCancel"]),be(Wje,{modelValue:P(J),"onUpdate:modelValue":j[5]||(j[5]=X=>En(J)?J.value=X:null),"warning-message":P(Y),firstExceptionError:P(q),onClose:P(B)},null,8,["modelValue","warning-message","firstExceptionError","onClose"])])}}}),sHe=rr(oHe,[["__scopeId","data-v-84625f57"]]),aHe={class:"fdm-card"},cHe={class:"fdm-card-header"},lHe={class:"fdm-card-header-left"},uHe={class:"fdm-card-header-right"},dHe=Je({__name:"fdm-card",props:{isOpen:{type:Boolean,default:!0},isOpenModifiers:{}},emits:["update:isOpen"],setup(e){const t=Nh(e,"isOpen"),n=se(null);function r(){t.value=!t.value}return(i,o)=>{const s=z5e;return ne(),Te("div",aHe,[G("div",cHe,[G("div",lHe,[St(i.$slots,"title",{},void 0,!0)]),G("div",uHe,[St(i.$slots,"actions",{},void 0,!0),G("span",{class:je(["toggle-icon",{rotated:t.value}]),onClick:r},[be(P(qW))],2)])]),be(s,null,{default:Re(()=>[vn(G("div",{ref_key:"content",ref:n,class:"fdm-card-content"},[St(i.$slots,"default",{},void 0,!0)],512),[[_r,t.value]])]),_:3})])}}}),ku=rr(dHe,[["__scopeId","data-v-13ce3744"]]),fHe={class:"z-axis"},hHe=["disabled"],pHe=["disabled"],mHe={class:"home-icon"},gHe=["disabled"],vHe={class:"arc-button-container"},yHe=["disabled"],EHe=["disabled"],bHe=["disabled"],SHe=["disabled"],AHe=["disabled"],CHe={class:"xy-axis-home"},wHe=["disabled"],THe={class:"home-icon"},IHe=["disabled"],PHe={class:"home-icon"},OHe=Je({__name:"axis-control",props:{xyzDisabled:{type:Boolean,default:!1}},emits:["z-up","z-down","x-up","x-down","y-up","y-down","home-all","home-x","home-y","home-z"],setup(e,{emit:t}){const{isMobile:n}=gs(),r=n.value?"40px":"56px",i={width:r,height:r},o={height:n.value?"122px":"158px"},s=n.value?"122px":"158px",a={width:s,height:s};return(c,l)=>(ne(),Te("div",{class:"axis-container",style:o},[G("div",fHe,[G("button",{class:"control-button z-axis-item",disabled:e.xyzDisabled,onClick:l[0]||(l[0]=u=>c.$emit("z-up"))}," Z↑ ",8,hHe),l[10]||(l[10]=G("div",{class:"line"},null,-1)),G("button",{class:"z-axis-item control-button",disabled:e.xyzDisabled,onClick:l[1]||(l[1]=u=>c.$emit("home-z"))},[G("span",mHe,[be(P(fce))])],8,pHe),l[11]||(l[11]=G("div",{class:"line"},null,-1)),G("button",{class:"control-button z-axis-item",disabled:e.xyzDisabled,onClick:l[2]||(l[2]=u=>c.$emit("z-down"))}," Z↓ ",8,gHe)]),G("div",{class:"xy-axis",style:a},[G("div",vHe,[G("button",{class:"sector top",disabled:e.xyzDisabled,onClick:l[3]||(l[3]=u=>c.$emit("y-up"))},[...l[12]||(l[12]=[G("span",null," Y+ ",-1)])],8,yHe),G("button",{class:"sector right",disabled:e.xyzDisabled,onClick:l[4]||(l[4]=u=>c.$emit("x-up"))},[...l[13]||(l[13]=[G("span",null," X+ ",-1)])],8,EHe),G("button",{class:"sector bottom",disabled:e.xyzDisabled,onClick:l[5]||(l[5]=u=>c.$emit("y-down"))},[...l[14]||(l[14]=[G("span",null," Y- ",-1)])],8,bHe),G("button",{class:"sector left",disabled:e.xyzDisabled,onClick:l[6]||(l[6]=u=>c.$emit("x-down"))},[...l[15]||(l[15]=[G("span",null," X- ",-1)])],8,SHe),l[16]||(l[16]=G("div",{class:"line horizontal"},null,-1)),l[17]||(l[17]=G("div",{class:"line vertical"},null,-1))]),G("button",{class:"home",style:i,disabled:e.xyzDisabled,onClick:l[7]||(l[7]=u=>c.$emit("home-all"))},[G("span",null,[be(P(lce),{width:"20",height:"20"})])],8,AHe)]),G("div",CHe,[G("button",{class:"z-axis-item control-button",disabled:e.xyzDisabled,onClick:l[8]||(l[8]=u=>c.$emit("home-x"))},[G("span",THe,[be(P(yce))])],8,wHe),l[18]||(l[18]=G("div",{class:"line"},null,-1)),G("button",{class:"z-axis-item control-button",disabled:e.xyzDisabled,onClick:l[9]||(l[9]=u=>c.$emit("home-y"))},[G("span",PHe,[be(P(mce))])],8,IHe)])]))}}),Cee=rr(OHe,[["__scopeId","data-v-d4b831ae"]]),_He={class:"flex items-center gap-2 justify-between"},RHe={class:"flex items-center gap-2"},kHe={class:"flex items-center gap-2"},xHe={key:0,class:"flex items-center gap-2"},DHe=["disabled"],LHe={key:0},NHe={key:1},MHe=["disabled"],BHe={key:0},FHe={key:1},UHe=Je({__name:"value-control",props:Dm({title:String,componentType:{type:String,default:null},showInput:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},defaultOpenValue:{type:Number,default:100},cmdStatus:{type:Number,default:Fc.NotExecuted}},{value:{type:Number,default:0},valueModifiers:{}}),emits:Dm(["change"],["update:value"]),setup(e,{emit:t}){const n=e,r=se(!1),i=se(null),o=se(!1),s=se(!1),a=Nh(e,"value"),c=se(""),l=t,u=se(!1),d=se(0),f=se(!1),h=se(!1),p=se(!1),g=se(""),m=se(0),y=di(),v=V(()=>o.value||n.cmdStatus===Fc.Executing);function E(O){var L;if(n.disabled&&(O.stopPropagation(),((L=y.deviceAttributes)==null?void 0:L.machine_model)==tc.C2)){let R=!1;switch(n.componentType){case na.AuxiliaryFan:R=!y.isAuxiliaryFanUpgraded;break;case na.ExhaustGrille:R=!y.isExhaustGrilleUpgraded;break;case na.ChassisFan:R=!y.isChassisFanUpgraded;break;case na.ChassisLight:R=!y.isChassisLightUpgraded;break}R&&(u.value=!0)}}function b(){n.disabled||v.value||Cn(()=>{p.value=r.value,g.value=c.value,m.value=d.value;const O=r.value?0:n.defaultOpenValue;d.value=O,h.value=!0,o.value=!0,s.value=!0,r.value=O>0,c.value=`${O}%`,l("change",d.value)})}function S(O){n.disabled||v.value||(O<0&&(O=0),O>100&&(O=100),p.value=r.value,g.value=c.value,m.value=d.value,d.value=O,Cn(()=>{h.value=!0,o.value=!0,c.value=`${d.value}%`,r.value=d.value>0,l("change",d.value)}))}const w=se(!1),C=se(!1);function _(){n.disabled||v.value||a.value<=0||(w.value=!0,S(d.value-10))}function I(){n.disabled||v.value||a.value>=100||(C.value=!0,S(d.value+10))}return Ye(()=>n.cmdStatus,(O,L)=>{L===Fc.Executing&&O===Fc.Success&&(r.value=d.value>0,c.value=`${d.value}%`,Pe.log("命令成功,开关状态已反转并更新输入值:",r.value,c.value),o.value=!1,s.value=!1,w.value=!1,C.value=!1),L===Fc.Executing&&O===Fc.Failed&&(o.value=!1,s.value=!1,w.value=!1,C.value=!1,r.value=p.value,c.value=g.value,d.value=m.value),o.value&&O===Fc.NotExecuted&&L!==Fc.NotExecuted&&(o.value=!1,s.value=!1,w.value=!1,C.value=!1,r.value=p.value,c.value=g.value,d.value=m.value,Pe.log("取消操作,已重置 pending 并回滚 UI"))}),Ye(()=>a.value,O=>{n.cmdStatus!==Fc.Executing&&(r.value=O>0,c.value=`${O}%`),!f.value&&!h.value&&(d.value=O,f.value=!0)}),ln(()=>{d.value=a.value,c.value=`${a.value}%`,a.value===0?r.value=!1:r.value=!0}),yc(()=>{i.value&&(clearTimeout(i.value),i.value=null)}),(O,L)=>{const R=Mw,F=Pn,W=iG;return ne(),Te(Ft,null,[G("div",{class:je(["value-control",{"is-disabled":n.disabled}]),onClickCapture:E},[G("div",_He,[G("div",RHe,[G("span",null,[St(O.$slots,"icon",{},void 0,!0)]),G("span",null,Ue(n.title),1)]),G("div",kHe,[be(R,{"model-value":r.value,size:"large",onChange:b,disabled:n.disabled||v.value,loading:s.value,class:"custom-switch"},null,8,["model-value","disabled","loading"])])]),n.showInput?(ne(),Te("div",xHe,[G("button",{class:"gray-button",onClick:_,disabled:n.disabled||v.value||a.value<=0},[w.value?(ne(),Te("span",LHe,[be(F,{class:"is-loading",style:{"font-size":"14px"}},{default:Re(()=>[be(P(dl))]),_:1})])):(ne(),Te("span",NHe,[be(P(Cce))]))],8,DHe),be(W,{class:"flex-1 no-border-input",readonly:!0,"model-value":c.value,style:{"min-width":"60px"},disabled:n.disabled},null,8,["model-value","disabled"]),G("button",{class:"gray-button",onClick:I,disabled:n.disabled||v.value||a.value>=100},[C.value?(ne(),Te("span",BHe,[be(F,{class:"is-loading",style:{"font-size":"14px"}},{default:Re(()=>[be(P(dl))]),_:1})])):(ne(),Te("span",FHe,[be(P(eV))]))],8,MHe)])):Ke("",!0)],34),be(al,{modelValue:u.value,"onUpdate:modelValue":L[0]||(L[0]=J=>u.value=J),"confirm-title":O.$t("errorNotice"),"confirm-message":O.$t("dialogs.needUpgradeComponent"),"confirm-btn-txt":"confirm","show-cancel-btn":!1},null,8,["modelValue","confirm-title","confirm-message"])],64)}}}),wd=rr(UHe,[["__scopeId","data-v-ff828c0f"]]),jHe={style:{width:"fit-content"}},HHe={class:"flex items-center gap-2 justify-between xyz-pos"},zHe=Je({__name:"step-setting",props:Dm(["xPos","yPos","zPos"],{step:{type:Number,default:1},stepModifiers:{}}),emits:["update:step"],setup(e){const t=se([{name:"0.1mm",value:.1},{name:"1mm",value:1},{name:"10mm",value:10},{name:"30mm",value:30}]),n=Nh(e,"step");return(r,i)=>{const o=WG,s=zG;return ne(),Te("div",jHe,[G("div",HHe,[G("span",null,"X:"+Ue(e.xPos??""),1),G("span",null,"Y:"+Ue(e.yPos??""),1),G("span",null,"Z:"+Ue(e.zPos??""),1)]),be(s,{modelValue:n.value,"onUpdate:modelValue":i[0]||(i[0]=a=>n.value=a),size:"large",class:"fdm-radio-button-group"},{default:Re(()=>[(ne(!0),Te(Ft,null,Rr(t.value,a=>(ne(),Ze(o,{label:a.name,value:a.value,key:a.name,style:{width:"72px",height:"42px"}},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])}}}),wee=rr(zHe,[["__scopeId","data-v-d3248eec"]]),WHe={class:"control-container"},VHe={class:"flex-1 relative ml-4 flex flex-col justify-between"},GHe={class:"flex items-center gap-2 justify-between mb-[10px]"},JHe={class:"self-end flex items-center"},ZHe={class:"fan-container"},YHe=Je({__name:"device-control",setup(e){const{deviceControlModel:t,onchassisFanSpeedChange:n,onAuxiliaryFanSpeedChange:r,onModelFanSpeedChange:i,onLightChange:o,controlDisabled:s,move:a,moveToHome:c,setPrintSpeedPct:l,changeSpeedDisabled:u,chassisFanDisabled:d,lightDisabled:f,fanDisabled:h,auxiliaryFanDisabled:p,xyzDisabled:g,uiPrinterMode:m,chassisFanCmdStatus:y,auxiliaryFanCmdStatus:v,modelFanCmdStatus:E,lightCmdStatus:b,showLightOffDialog:S,onLightOffConfirm:w,onLightOffCancel:C}=Aee();return(_,I)=>{const O=Ug,L=Fg;return ne(),Te(Ft,null,[be(ku,null,{title:Re(()=>[yt(Ue(_.$t("control.control")),1)]),default:Re(()=>[G("div",WHe,[be(Cee,{class:"self-center",xyzDisabled:P(g),onHomeAll:I[0]||(I[0]=R=>P(c)("XYZ")),onHomeX:I[1]||(I[1]=R=>P(c)("X")),onHomeY:I[2]||(I[2]=R=>P(c)("Y")),onHomeZ:I[3]||(I[3]=R=>P(c)("Z")),onXUp:I[4]||(I[4]=R=>P(a)("X",1)),onXDown:I[5]||(I[5]=R=>P(a)("X",-1)),onYUp:I[6]||(I[6]=R=>P(a)("Y",1)),onYDown:I[7]||(I[7]=R=>P(a)("Y",-1)),onZUp:I[8]||(I[8]=R=>P(a)("Z",1)),onZDown:I[9]||(I[9]=R=>P(a)("Z",-1))},null,8,["xyzDisabled"]),G("div",VHe,[G("div",GHe,[be(wee,{step:P(t).moveStep,"onUpdate:step":I[10]||(I[10]=R=>P(t).moveStep=R),"x-pos":P(t).xPos,"y-pos":P(t).yPos,"z-pos":P(t).zPos,disabled:P(s)},null,8,["step","x-pos","y-pos","z-pos","disabled"]),G("div",JHe,[G("span",null,Ue(_.$t("control.printSpeed")),1),be(L,{modelValue:P(m),"onUpdate:modelValue":I[11]||(I[11]=R=>En(m)?m.value=R:null),placeholder:"",style:{width:"140px"},"show-arrow":!1,offset:4,class:"ml-[10px] no-border-select disabled-cursor",disabled:P(u),onChange:P(l)},{default:Re(()=>[(ne(!0),Te(Ft,null,Rr(P(t).printModeOptions,R=>(ne(),Ze(O,{key:R.value,label:_.$t(R.label),value:R.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled","onChange"])])]),G("div",ZHe,[be(wd,{class:"flex-1",title:_.$t("control.model"),value:P(t).modelFanSpeed,"onUpdate:value":I[12]||(I[12]=R=>P(t).modelFanSpeed=R),onChange:P(i),disabled:P(h),defaultOpenValue:100,cmdStatus:P(E),"component-type":P(na).ModelFan},{icon:Re(()=>[be(P(Mh))]),_:1},8,["title","value","onChange","disabled","cmdStatus","component-type"]),be(wd,{class:"flex-1",title:_.$t("control.sideFan"),value:P(t).auxiliaryFanSpeed,"onUpdate:value":I[13]||(I[13]=R=>P(t).auxiliaryFanSpeed=R),onChange:P(r),disabled:P(p),defaultOpenValue:100,cmdStatus:P(v),"component-type":P(na).AuxiliaryFan},{icon:Re(()=>[be(P(Mh))]),_:1},8,["title","value","onChange","disabled","cmdStatus","component-type"]),be(wd,{class:"flex-1",title:_.$t("control.Case"),"show-input":!0,value:P(t).chassisFanSpeed,"onUpdate:value":I[14]||(I[14]=R=>P(t).chassisFanSpeed=R),onChange:P(n),disabled:P(d),defaultOpenValue:100,cmdStatus:P(y),"component-type":P(na).ExhaustGrille},{icon:Re(()=>[be(P(Mh))]),_:1},8,["title","value","onChange","disabled","cmdStatus","component-type"]),be(wd,{class:"flex-1",title:_.$t("control.Lighting"),"show-input":!1,value:P(t).lightValue,"onUpdate:value":I[15]||(I[15]=R=>P(t).lightValue=R),onChange:P(o),disabled:P(f),defaultOpenValue:1,cmdStatus:P(b),"component-type":P(na).ChassisLight},{icon:Re(()=>[be(P(tV))]),_:1},8,["title","value","onChange","disabled","cmdStatus","component-type"])])])])]),_:1}),be(al,{modelValue:P(S),"onUpdate:modelValue":I[16]||(I[16]=R=>En(S)?S.value=R:null),"confirm-title":_.$t("errorNotice"),"confirm-message":_.$t("aiDetection.lightOffConfirm"),"confirm-btn-txt":_.$t("close"),onConfirm:P(w),onCancel:P(C)},null,8,["modelValue","confirm-title","confirm-message","confirm-btn-txt","onConfirm","onCancel"])],64)}}}),XHe=rr(YHe,[["__scopeId","data-v-b895cfac"]]),QHe={class:"popover-content"},KHe={class:"canvas-container"},qHe={class:"slots-grid"},$He=["onClick"],eze={class:"fraction"},tze={class:"numerator"},nze={class:"denominator"},rze={class:"canvas-title"},ize=Je({__name:"tray-card-mapping-select",props:{canvas:{default:()=>({})},gFilamentType:{default:""},gFilamentName:{default:""}},emits:["mapping-update","close-popover"],setup(e,{emit:t}){const n=e,r=t,{t:i}=Eo(),o=V(()=>n.canvas.canvas_info.canvas_list||[]),s=m=>{if(n.canvas.canvas_info&&n.canvas.canvas_info.canvas_list.length>m){const y=n.canvas.canvas_info.canvas_list[m];if(y&&y.tray_list)return y.tray_list}return Array(4).fill(null)},a=m=>c(m)!==wi.NoRecognition,c=m=>m?m.status===Oo.Empty?wi.NoFilament:!m.filament_color||m.filament_color.trim()===""||!m.filament_type||m.filament_type.trim()===""?wi.NoRecognition:m.filament_type:wi.NoRecognition,l=m=>m?c(m)===wi.NoRecognition?"#434343":yd(m.filament_color)||"transparent":"transparent",u=m=>{const y=l(m);if(!y||y==="transparent"){const v=c(m);return v===wi.NoFilament||v===wi.NoRecognition?"#FFFFFF":Gc((m==null?void 0:m.filament_color)||"#000000")}return Gc(y)},d=m=>m?c(m)===wi.NoRecognition:!1,f=m=>{if(!m)return!1;const y=c(m);if(y===wi.NoFilament||y===wi.NoRecognition)return!1;const v=y===n.gFilamentType,E=n.gFilamentName&&fm(m.filament_name)===fm(n.gFilamentName);return v||E},h=m=>{if(!m)return"";const y=c(m);return y===wi.NoRecognition?"":m.status===Oo.Empty?i("multiColor.EmptyFilament"):y!==n.gFilamentType?i("multiColor.FilamentTypeNotMatch"):m.filament_name?m.filament_name:"-"},p=m=>{const y={padding:"8px",background:"#333334",textAlign:"center",width:"auto",minWidth:"80px",border:"1px solid black",whiteSpace:"nowrap",boxSizing:"border-box"};return m?c(m)!==n.gFilamentType?{...y,color:"#ff4d4f"}:{...y,color:"white"}:y},g=m=>{m.filament_color=yd(m.filament_color),r("mapping-update",m),r("close-popover")};return(m,y)=>{const v=Dp;return ne(),Te("div",QHe,[G("div",KHe,[(ne(!0),Te(Ft,null,Rr(o.value,(E,b)=>(ne(),Te("div",{key:b,class:"canvas-group"},[G("div",qHe,[(ne(!0),Te(Ft,null,Rr(s(Number(b)),(S,w)=>(ne(),Ze(v,{key:w,placement:"bottom",effect:"dark",trigger:"hover","show-arrow":!1,offset:12,disabled:!a(S),"popper-style":p(S)},{reference:Re(()=>[G("div",{class:je(["slot-item",{"transparent-bg":!1,"bordered-slot":d(S),"disabled-slot":!f(S)}]),style:Ut({"background-color":l(S),color:u(S)}),onClick:C=>f(S)?g(S):null},[G("div",eze,[G("div",tze,Ue(S?S.tray_id+1:b+(w+1)),1),G("div",nze,Ue(c(S)),1)])],14,$He)]),default:Re(()=>[yt(" "+Ue(h(S)),1)]),_:2},1032,["disabled","popper-style"]))),128))]),G("div",rze,"CANVAS-"+Ue(b),1)]))),128))])])}}}),oze=rr(ize,[["__scopeId","data-v-8578b5da"]]),sze={class:"all-container"},aze={class:"header-container"},cze={class:"btn-autofeed"},lze={class:"btn-container"},uze={class:"content-container"},dze=["onClick"],fze={class:"slot-dropdown"},hze={key:0,class:"empty-mapping-note font-size16"},pze={key:1,class:"note font-size12"},O1=4,mze=Je({__name:"tray-card-preview",props:{title:{default:""},existEmptyMapping:{type:Boolean,default:!1},canvas:{default:()=>({})}},emits:["mapping-update"],setup(e,{emit:t}){const{isMobile:n}=gs(),r=se("#373737"),i=se(!1),o=se(!1),s=di(),a=async I=>{const O=!!I;o.value=!0;try{await s.setAutoFillFilamentCanvas(O)&&(i.value=O,Pe.log("设置自动续料开关",O))}catch(L){Pe.error("Failed to set auto-refill",L),i.value=!O}finally{o.value=!1}};Ye(()=>s.canvasAutoRefill,I=>{I!==void 0&&(i.value=I)},{immediate:!0});const{amsMappingInfoData:c}=Vt("amsMappingInfoData"),{canvasPreviewMap:l}=Vt("canvasPreviewMap"),{slotArray:u}=Vt("slotArray"),d=se([]),f=se(1),h=V(()=>Math.ceil(d.value.length/O1)),p=V(()=>{const I=(f.value-1)*O1,O=I+O1;return d.value.slice(I,O)}),g=()=>{f.value>1&&f.value--},m=()=>{f.value{f.value=1};Ye([l,()=>{var I;return(I=c.value)==null?void 0:I.ColorMapping}],([I,O])=>{try{pp()&&(d.value=I||[]),y()}catch(L){Pe.error("Error in filamentMap watch:",L),d.value=[]}},{immediate:!0});const v=I=>{if(!u.value||!I)return"";const O=u.value.find(L=>L.id===I);return(O==null?void 0:O.filamentColor)??""},E=I=>{if(!u.value||!I)return"";const O=u.value.find(L=>L.id===I);return(O==null?void 0:O.filamentType)??""},b=se([]);Ye(()=>{var I;return(I=c.value)==null?void 0:I.ColorMapping},I=>{I&&(b.value=new Array(O1).fill(!1))},{immediate:!0});const S=I=>{if(I===""||!u.value)return"";const O=u.value.find(L=>L.id===I);return(O==null?void 0:O.filamentName)??""},w=se(-1),C=I=>{{d.value[w.value].mapFilamentColor=I.filament_color,d.value[w.value].mapFilamentType=I.filament_type,d.value[w.value].mapFilamentName=I.filament_name,d.value[w.value].trayId=Number(I.tray_id),d.value[w.value].canvasId=0,d.value[w.value].isSuccess=!0,l.value[w.value].mapFilamentColor=I.filament_color,l.value[w.value].mapFilamentType=I.filament_type,l.value[w.value].mapFilamentName=I.filament_name,l.value[w.value].trayId=Number(I.tray_id),l.value[w.value].canvasId=0,l.value[w.value].isSuccess=!0;return}},_=I=>{const O=(f.value-1)*O1+I;w.value=O};return(I,O)=>{const L=Pn,R=Mw,F=pr,W=Dp;return ne(),Te("div",sze,[G("div",aze,[be(L,null,{default:Re(()=>[be(P(Fle))]),_:1}),G("div",cze,[G("span",null,Ue(I.$t("multiColor.autoFeed")),1),be(R,{modelValue:i.value,"onUpdate:modelValue":O[0]||(O[0]=J=>i.value=J),loading:o.value,onChange:a,"active-color":"#409EFF","inactive-color":"#DCDFE6"},null,8,["modelValue","loading"])]),G("div",lze,[be(F,{class:"icon-btn",onClick:g,disabled:f.value<=1},{default:Re(()=>[be(P(Hle))]),_:1},8,["disabled"]),G("span",null,Ue(f.value)+"/"+Ue(h.value),1),be(F,{class:"icon-btn",onClick:m,disabled:f.value>=h.value},{default:Re(()=>[be(P(Vle))]),_:1},8,["disabled"])])]),G("div",uze,[p.value&&p.value.length>0?(ne(),Te(Ft,{key:0},[(ne(!0),Te(Ft,null,Rr(p.value,(J,Y)=>(ne(),Te("div",{key:Y,class:"tray-container"},[J.gFilamentName?(ne(),Ze(W,{key:0,placement:"top",effect:"dark",trigger:"hover","show-arrow":!1,offset:2,"popper-style":{padding:"8px",background:"#333334",color:"white",textAlign:"center",width:"100px",minWidth:"100px",maxHeight:"34px",border:"1px solid black"}},{reference:Re(()=>[G("div",{class:"slot-type",style:Ut({backgroundColor:J.gFilamentColor,color:P(Gc)(J.gFilamentColor)})},Ue(J.gFilamentType),5)]),default:Re(()=>[yt(" "+Ue(J.gFilamentName),1)]),_:2},1024)):(ne(),Te("div",{key:1,class:"slot-type",style:Ut({backgroundColor:J.gFilamentColor,color:P(Gc)(J.gFilamentColor)})},Ue(J.gFilamentType),5)),be(P(Qle)),be(W,{placement:P(n)?"bottom":"left",visible:b.value[Y],"onUpdate:visible":M=>b.value[Y]=M,trigger:"click",width:300,"popper-style":{padding:"8px",background:"#434343"}},{reference:Re(()=>[G("div",{class:"slot-id-container",style:Ut({backgroundColor:J.mapFilamentColor?J.mapFilamentColor:r.value,color:P(Gc)(J.mapFilamentColor)}),onClick:M=>_(Y)},[P(pp)()&&!J.isSuccess?(ne(),Te(Ft,{key:0},[],64)):(ne(),Te(Ft,{key:1},[G("span",null,Ue(J.trayId+1),1),G("div",null,[be(P($le),{class:"arrow-down hor-line",style:Ut({"--fill-color":P(Gc)(J.mapFilamentColor)})},null,8,["style"])]),be(W,{placement:"bottom",effect:"dark",trigger:"hover","show-arrow":!1,offset:22,"popper-style":{padding:"8px",background:"#333334",color:"white",textAlign:"center",width:"100px",minWidth:"100px",maxHeight:"34px",border:"1px solid black"}},{reference:Re(()=>[G("span",null,Ue(J.mapFilamentType),1)]),default:Re(()=>[yt(" "+Ue(J.mapFilamentName),1)]),_:2},1024)],64)),G("div",fze,[be(P(qW),{class:"arrow-down",style:Ut({"--fill-color":P(Gc)(J.mapFilamentColor)})},null,8,["style"])])],12,dze)]),default:Re(()=>[be(oze,{canvas:I.canvas,gFilamentType:J.gFilamentType,gFilamentName:J.gFilamentName,onMappingUpdate:C,onClosePopover:M=>b.value[Y]=!1},null,8,["canvas","gFilamentType","gFilamentName","onClosePopover"])]),_:2},1032,["placement","visible","onUpdate:visible"])]))),128)),p.value.length<4?(ne(!0),Te(Ft,{key:0},Rr(4-p.value.length,J=>(ne(),Te("div",{key:"filler-"+J,class:"tray-container tray-placeholder"}))),128)):Ke("",!0)],64)):Ke("",!0)]),I.existEmptyMapping?(ne(),Te("div",hze,[G("span",null,Ue(I.$t("multiColor.existEmptyMappingNote")),1)])):(ne(),Te("div",pze,[G("span",null,Ue(I.$t("multiColor.selectCANVASNote")),1)]))])}}}),gze=rr(mze,[["__scopeId","data-v-cf19f61d"]]),vze={class:"myDialogHeader"},yze={class:"print-task-content"},Eze={class:"file-info"},bze={class:"model-preview"},Sze=["src"],Aze={class:"print-info"},Cze={class:"info-group"},wze={class:"print-time"},Tze={class:"info-group"},Ize={class:"material-weight"},Pze={class:"info-group"},Oze={class:"material-weight"},_ze={class:"print-bed-options"},Rze={class:"target-checkbox"},kze={class:"label-text"},xze={key:0,class:"target-checkbox"},Dze={class:"label-text"},Lze={class:"target-checkbox"},Nze={class:"label-text"},Mze={class:"bottom-container"},Bze=768,Fze=Je({__name:"print-preview",props:{modelValue:Boolean,fileData:{type:Object,default:()=>({name:"",previewImage:"",printTime:"",materialWeight:"",TotalLayers:0})},canvas:{type:Object,default:()=>({})}},emits:["confirm-print","ams-confirm-print","update:modelValue","confirm-print-mqtt"],setup(e,{emit:t}){Dre(R=>({"52b48529":I.value}));const n=di(),r=e,i=V(()=>n.canvasConnected??!1),{amsMappingInfoData:o}=Vt("amsMappingInfoData"),{canvasPreviewMap:s}=Vt("canvasPreviewMap"),a=()=>s.value.findIndex(R=>R.mapFilamentColor===""),c=se(!1),l=V(()=>{const R=r.fileData.materialWeight,F=typeof R=="number"?R:Number(R);return Number.isNaN(F)?"--":F.toFixed(2)}),u=t,d=se({timeLapse:!1,bedLeveling:!1,openCANVAS:!0,selectedBed:"A"});let f=null;const h=se(!1),p=se(window.innerWidth),g=V(()=>p.value>=Bze?"calc(50vh - 380px)":"5vh"),m=()=>{p.value=window.innerWidth};ln(()=>{window.addEventListener("resize",m)}),xi(()=>{window.removeEventListener("resize",m)});const y=V({get:()=>r.modelValue,set:R=>u("update:modelValue",R)}),v=se(!0),E=()=>{h.value||(v.value=!1)};Ye(()=>r.fileData.previewImage,()=>{v.value=!0});const b=()=>{d.value.timeLapse=!1,d.value.bedLeveling=!1,d.value.openCANVAS=!0,d.value.selectedBed="A",c.value=!1,I.value=_.value};Ye(()=>y.value,R=>{R?(h.value=!1,f!==null&&(clearTimeout(f),f=null)):(h.value=!0,f!==null&&clearTimeout(f),f=window.setTimeout(()=>{b(),f=null},500))});const S=()=>{if(i.value){if(a()!==-1){c.value=!0;return}{const R={filename:r.fileData.name,storage_media:xn.Local,config:{delay_video:d.value.timeLapse,printer_check:d.value.bedLeveling,print_layout:d.value.selectedBed,bedlevel_force:!1,slot_map:s.value.map(F=>({t:F.t,canvas_id:F.canvasId,tray_id:F.trayId}))}};Pe.log("MQTT多色打印",JSON.parse(JSON.stringify(R))),u("confirm-print-mqtt",R)}}else{const R={filename:r.fileData.name,storage_media:xn.Local,config:{delay_video:d.value.timeLapse,printer_check:d.value.bedLeveling,print_layout:d.value.selectedBed}};Pe.log("MQTT单色打印",R),u("confirm-print-mqtt",R)}y.value=!1},w=()=>{y.value=!1},C=R=>`data:image/png;base64,${R}`,_=se("#333334"),I=se("#333334"),O=R=>{const F=performance.now();I9e(R.target).then(W=>{const J=P9e(I.value,W);if(Pe.log("色差距离:",J,"颜色1:",I.value,"颜色2:",W),J<1.2){const M=Xn(W).luminance()>.5?"#1c1c1d":"#585858";Pe.log(`颜色太相似 (ΔE=${J}),自动选择对比色: ${M}`),I.value=M}}).catch(W=>{Pe.error("Failed to get or analyze main color of image:",W),I.value=_.value}).finally(()=>{const J=performance.now()-F;Pe.log(`[性能统计] 模型图/背景色色差分析总耗时: ${J.toFixed(2)}ms`)})};function L(R){Pe.log("映射更新,选择的颜色:",R)}return(R,F)=>{const W=pr,J=WG,Y=zG,M=Zd;return ne(),Ze(M,{modelValue:y.value,"onUpdate:modelValue":F[4]||(F[4]=B=>y.value=B),"show-close":!1,width:"auto",top:g.value,style:Ut({backgroundColor:_.value,padding:"0px 0px 6px",maxWidth:i.value?"446px":"420px",minWidth:"100px",borderRadius:"4px",overflow:"hidden"})},{header:Re(()=>[G("div",vze,[G("span",null,Ue(R.$t("sendPrintTask")),1),be(W,{class:"close-dialog-btn",type:"info",onClick:w,size:"small"},{default:Re(()=>[be(P(Wd))]),_:1})])]),default:Re(()=>[G("div",yze,[G("div",Eze,Ue(P(mp)(e.fileData.name)),1),G("div",bze,[vn(G("img",{src:C(e.fileData.previewImage),alt:"模型预览",class:"model-image",onError:E,onLoad:O},null,40,Sze),[[_r,v.value]]),vn(be(P(oue),{class:"model-image"},null,512),[[_r,!v.value&&!h.value]])]),G("div",Aze,[G("div",Cze,[be(P(Rce)),G("span",wze," "+Ue(e.fileData.printTime||"--"),1)]),G("div",Tze,[be(P(Dce)),G("span",Ize," "+Ue(l.value)+"g",1)]),G("div",Pze,[be(P(Zle)),G("span",Oze," "+Ue(e.fileData.totalLayers),1)])]),vn(be(gze,{existEmptyMapping:c.value,canvas:e.canvas,onMappingUpdate:L},null,8,["existEmptyMapping","canvas"]),[[_r,i.value]]),G("div",_ze,[be(Y,{modelValue:d.value.selectedBed,"onUpdate:modelValue":F[0]||(F[0]=B=>d.value.selectedBed=B)},{default:Re(()=>[be(J,{value:"A"},{default:Re(()=>[yt(Ue(R.$t("texturedPlate")),1)]),_:1}),be(J,{value:"B"},{default:Re(()=>[yt(Ue(R.$t("smoothPlate")),1)]),_:1})]),_:1},8,["modelValue"])]),G("div",{class:je(["print-options",{"two-options":!0}])},[vn(G("label",Rze,[vn(G("input",{type:"checkbox","onUpdate:modelValue":F[1]||(F[1]=B=>d.value.openCANVAS=B)},null,512),[[Y0,d.value.openCANVAS]]),F[5]||(F[5]=G("span",{class:"checkmark"},null,-1)),G("span",kze,Ue(R.$t("multiColor.openCANVAS")),1)],512),[[_r,!1]]),!P(jn)()&&P(n).isCameraUpgraded?(ne(),Te("label",xze,[vn(G("input",{type:"checkbox","onUpdate:modelValue":F[2]||(F[2]=B=>d.value.timeLapse=B)},null,512),[[Y0,d.value.timeLapse]]),F[6]||(F[6]=G("span",{class:"checkmark"},null,-1)),G("span",Dze,Ue(R.$t("timeLapse")),1)])):Ke("",!0),G("label",Lze,[vn(G("input",{type:"checkbox","onUpdate:modelValue":F[3]||(F[3]=B=>d.value.bedLeveling=B)},null,512),[[Y0,d.value.bedLeveling]]),F[7]||(F[7]=G("span",{class:"checkmark"},null,-1)),G("span",Nze,Ue(R.$t("bedLeveling")),1)])])]),G("div",Mze,[be(W,{class:"cancel-btn",onClick:w},{default:Re(()=>[yt(Ue(R.$t("buttons.cancel")),1)]),_:1}),be(W,{class:"confirm-btn",type:"primary",onClick:S},{default:Re(()=>[yt(Ue(R.$t("buttons.print")),1)]),_:1})])]),_:1},8,["modelValue","top","style"])}}}),Tee=rr(Fze,[["__scopeId","data-v-e2c0238c"]]),Uze=Je({__name:"customLoading",setup(e){return(t,n)=>{const r=Pn;return ne(),Ze(r,{class:"is-loading"},{default:Re(()=>[be(P(dl))]),_:1})}}});class jze{static hexToRgb(t){const n=t.replace(/^#/,"");if(!/^([0-9A-Fa-f]{3}){1,2}$/.test(n))return console.error(`[ColorTool] 无效的十六进制颜色:${t},请传入如#FF6464或FF6464的格式`),null;const r=n.length===3?n.split("").map(a=>a.repeat(2)).join(""):n,i=parseInt(r.slice(0,2),16),o=parseInt(r.slice(2,4),16),s=parseInt(r.slice(4,6),16);return[i,o,s]}static normalizeRgb(t,n=16){const r=t.map(o=>Math.max(0,Math.min(255,o))),i=255/(n-1);return r.map(o=>Math.round(o/i)*i)}static rgbToHsv(t,n,r){const i=t/255,o=n/255,s=r/255,a=Math.max(i,o,s),c=Math.min(i,o,s);let l=0,u=0;const d=a*100,f=a-c;if(a!==0&&(u=f/a*100),f!==0){switch(a){case i:l=(o-s)/f+(o=u[0]&&S<=u[1]&&_>=u[0]&&_<=u[1]&&w>=g&&I>=g,J=S>=f[0]&&S<=f[1]&&_>=f[0]&&_<=f[1]&&w>=g&&I>=g,Y=C>=p&&O>=p,M=w.04045?Math.pow((t+.055)/1.055,2.4):t/12.92}function vH(e,t,n){const r=VE(e),i=VE(t),o=VE(n),s=r*.4124564+i*.3575761+o*.1804375,a=r*.2126729+i*.7151522+o*.072175,c=r*.0193339+i*.119192+o*.9503041;return[s*100,a*100,c*100]}function yH(e,t,n){const s=e/95.047,a=t/100,c=n/108.883,l=.008856,u=903.3,d=s>l?Math.cbrt(s):(u*s+16)/116,f=a>l?Math.cbrt(a):(u*a+16)/116,h=c>l?Math.cbrt(c):(u*c+16)/116,p=116*f-16,g=500*(d-f),m=200*(f-h);return[p,g,m]}function EH(e){if(!e||!/^#?[0-9A-Fa-f]{3}([0-9A-Fa-f]{3})?$/.test(e))return null;const t=jze.hexToRgb(e);return t||null}function zze(e,t,n,r,i,o){const s=Math.sqrt(t*t+n*n),a=Math.sqrt(i*i+o*o),c=(s+a)/2,l=.5*(1-Math.sqrt(Math.pow(c,7)/(Math.pow(c,7)+Math.pow(25,7)))),u=(1+l)*t,d=(1+l)*i,f=Math.sqrt(u*u+n*n),h=Math.sqrt(d*d+o*o);let p=Math.atan2(n,u)*180/Math.PI,g=Math.atan2(o,d)*180/Math.PI;p<0&&(p+=360),g<0&&(g+=360);const m=r-e,y=h-f;let v=g-p;v>180&&(v-=360),v<-180&&(v+=360);const E=2*Math.sqrt(f*h)*Math.sin(v*Math.PI/360),b=(e+r)/2,S=(f+h)/2;let w=(p+g)/2;Math.abs(p-g)>180&&(w+=180),w>360&&(w-=360);const C=1-.17*Math.cos((w-30)*Math.PI/180)+.24*Math.cos(2*w*Math.PI/180)+.32*Math.cos((3*w+6)*Math.PI/180)-.2*Math.cos((4*w-63)*Math.PI/180),_=30*Math.exp(-Math.pow((w-275)/25,2)),I=2*Math.sqrt(Math.pow(S,7)/(Math.pow(S,7)+Math.pow(25,7))),O=1+.015*Math.pow(b-50,2)/Math.sqrt(20+Math.pow(b-50,2)),L=1+.045*S,R=1+.015*S*C,F=-Math.sin(2*_*Math.PI/180)*I,W=1,J=1,Y=1;return Math.sqrt(Math.pow(m/(W*O),2)+Math.pow(y/(J*L),2)+Math.pow(E/(Y*R),2)+F*(y/(J*L))*(E/(Y*R)))}function Wze(e,t=50){const n=EH(e);if(!n)return null;const[r,i,o]=vH(n[0],n[1],n[2]),[s,a,c]=yH(r,i,o);let l=Number.POSITIVE_INFINITY,u=null;for(const d of Hze){const f=EH(d.colorHex);if(!f)continue;const[h,p,g]=vH(f[0],f[1],f[2]),[m,y,v]=yH(h,p,g),E=zze(s,a,c,m,y,v);E(e.File="file",e.PrintHistory="printHistory",e.UDisk="UDisk",e))(Ai||{});function Vze(){const{t:e}=Eo(),t=El(),n=di(),r=n,i=se([]),o=se([]),s=se(""),a=se(""),c=se(""),l=se(!1),u=se(1),d=se(50),f=se(1),h=se(50),p=se("/"),g=se(0),m=se(0),y=se({}),v=se(new Map),E=se(new Map),b=se(new Map),S=se(new Map),w=se(!1),C=se(null),_=se(!1),I=se(!1),O=se(!1),L=()=>{C.value||(C.value=Zt({message:e("toastMessages.loadingData"),type:"info",duration:0,icon:hn(Uze),dangerouslyUseHTMLString:!0}))},R=()=>{C.value&&(C.value.close(),C.value=null)};xi(()=>{R()}),ln(()=>{var ue,Ee;j.value.length===0&&L(),Ye(()=>{var He,Xe;return(Xe=(He=n.deviceStatus)==null?void 0:He.external_device)==null?void 0:Xe.u_disk},He=>{He!==void 0&&(Pe.log("u盘状态发生变化",He),E.value.clear(),b.value.clear(),S.value.clear(),o.value=[],f.value=1,h.value=50,m.value=0,p.value="/",K(xn.UDisk,"/"))}),Ye(()=>n.isRegisterSuccess,He=>{He&&(K(xn.Local),Ie())}),((Ee=(ue=n.deviceStatus)==null?void 0:ue.external_device)==null?void 0:Ee.u_disk)&&(p.value="/",K(xn.UDisk,"/",0,Ya))}),se([]);const F=se("file"),W=V(()=>r.status),J=V(()=>n.subStatus);Ye(W,ue=>{(ue===wt.Completed||ue===wt.Stopped)&&(L(),K(xn.Local),setTimeout(()=>{K(xn.UDisk,"/")},1e3),Ie())},{immediate:!0}),Ye(J,ue=>{(ue===De.PrintComplete||ue===De.Stopped)&&(Pe.log("打印完成或停止,5s后刷新历史任务列表..."),setTimeout(()=>{Ie()},4e3),K(xn.Local),setTimeout(()=>{K(xn.UDisk,"/")},1e3),Pe.log("打印完成或停止,清空当前打印缩略图..."),n.currentThumbnail="")}),Ye(()=>n.status,(ue,Ee)=>{Ee===Ge.FileSending&&ue!==Ge.FileSending&&(Pe.log("[ALL]旧状态-文件传输中,新状态-非文件传输中,2s后将刷新文件列表..."),ce(xn.Local),setTimeout(async()=>{var He;if(await K(xn.Local),Pe.log("[ALL]刷新文件列表成功"),n.isPrinting){const Xe=(He=n.printerInfo)==null?void 0:He.filename;if(Xe&&!i.value.some(qe=>qe.filename===Xe)){for(let We=1;We<=3;We++)if(await new Promise(ht=>setTimeout(ht,1e3)),ce(xn.Local),Pe.log(`[ALL]第${We}次刷新本地文件列表...`),await K(xn.Local),i.value.some(ht=>ht.filename===Xe)){Pe.log("[ALL]找到文件,停止重试");return}Pe.log("[ALL]重试3次后仍未找到文件")}}},1e3))});const Y=V(()=>!(n.isIdle||n.isPrintStopped||n.isPrintCompleted||n.isMainLoading&&n.isLoadCompleteCanvas||n.isMainUnLoading&&n.isEjectFilamentComplete||n.isMainAutoLevel&&n.isAutoLevelingComplete||n.isMainPid&&n.isPidCompleted||n.isMainResonanceTesting&&n.isResonanceCompleted||n.isMainHoming&&n.isHomed)),M=V(()=>!(n.isIdle||n.isPrintStopped||n.isPrintCompleted||n.isMainUnLoading&&n.isEjectFilamentComplete||n.isMainLoading&&n.isLoadCompleteCanvas||n.isMainAutoLevel&&n.isAutoLevelingComplete||n.isMainPid&&n.isPidCompleted||n.isMainResonanceTesting&&n.isResonanceCompleted||n.isMainHoming&&n.isHomed)),B=V(()=>!(n.isIdle||n.isPrintStopped||n.isPrintCompleted)),q=V(()=>!n.isIdle),z=V(()=>n.isPrinting),A=V(()=>!n.isIdle),T=V(()=>!n.isIdle),k=V(()=>n.historytaskDetails),j=V(()=>{{const ue=[];return F.value==="file"||F.value==="printHistory"?i.value&&i.value.length>0&&ue.push(...i.value.map(Ee=>({name:Ee.filename,usedSize:0,totalSize:0,storageType:0,type:1,CreateTime:Ee.create_time??0,FileSize:Ee.size??0,Thumbnail:"",LayerHeight:Ee.layer??0,TotalLayers:Ee.layer??0,EstFilamentLength:Ee.total_filament_used??0}))):F.value==="UDisk"&&o.value&&o.value.length>0&&ue.push(...o.value.map(Ee=>({name:Ee.filename,usedSize:0,totalSize:0,storageType:1,type:1,CreateTime:Ee.create_time??0,FileSize:Ee.size??0,Thumbnail:"",LayerHeight:Ee.layer??0,TotalLayers:Ee.layer??0,EstFilamentLength:Ee.total_filament_used??0}))),ue}});Ye(j,ue=>{ue&&ue.length>0&&R()}),Ye(w,ue=>{ue&&R()});const re=V(()=>n.canvas),me=se([]);Ye(()=>{var ue,Ee;return(Ee=(ue=re.value)==null?void 0:ue.canvas_info)==null?void 0:Ee.canvas_list},(ue,Ee)=>{if(!ue&&!Ee)return;if(!ue||!Ee){Pe.log("canvas_list信息发生变化(空值变化)",ue),me.value=ue||[];return}if(ue.length!==Ee.length){Pe.log("canvas_list信息发生变化(长度变化)",ue),me.value=ue;return}const He=JSON.stringify(ue),Xe=JSON.stringify(Ee);He!==Xe&&(Pe.log("canvas_list信息发生变化(内容变化)",ue),me.value=ue)},{deep:!0});const te=V(()=>{var He,Xe,qe,It,We;const ue=[];if(!ee.value.color_map||!me.value||me.value.length===0)return Pe.warn("缺少Gcode文件多色信息或多色耗材信息为空,无法进行多色映射"),ue;const Ee=[];for(const $e of me.value)if($e!=null&&$e.tray_list)for(const ht of $e.tray_list)Ee.push({canvasId:$e.canvas_id||0,tray:ht});for(let $e=0;$et.amsMappingInfoData),fe=()=>{const ue={FilePath:"xxxxx"};return t.getAmsMappingInfo(ue)},le=V(()=>t.mockAmsInfo1),ve=V(()=>{var Ee;const ue=[];return(Ee=le.value)!=null&&Ee.AmsBoxs&&le.value.AmsBoxs.forEach((He,Xe)=>{He!=null&&He.TrayList&&He.TrayList.forEach((qe,It)=>{ue.push(qe)})}),ue});ui("amsMappingInfoData",{amsMappingInfoData:X}),ui("slotArray",{slotArray:ve});const Z=V(()=>te.value);ui("canvasPreviewMap",{canvasPreviewMap:Z});const ae=V(()=>{{const ue=k.value||[],Ee=j.value||[],He=new Map(Ee.map(qe=>[qe.name,{exists:!0,TotalLayers:qe.TotalLayers}]));return ue.map(qe=>{var It;return{Thumbnail:"",TaskName:qe.task_name,BeginTime:qe.begin_time,EndTime:qe.end_time,TaskStatus:qe.task_status,SliceInformation:{},AlreadyPrintLayer:0,TaskId:qe.task_id,MD5:"",CurrentLayerTalVolume:0,TimeLapseVideoStatus:qe.time_lapse_video_status,TimeLapseVideoUrl:qe.time_lapse_video_url,TimeLapseVideoSize:qe.time_lapse_video_size,TimeLapseVideoDuration:qe.time_lapse_video_duration,ErrorStatusReason:0,noExistPrintFile:!He.has(qe.task_name),TotalLayers:(It=He.get(qe.task_name))==null?void 0:It.TotalLayers}})}}),pe=async(ue,Ee)=>{{if(_.value)return;if(Ee=="back"){if(p.value=="/")return;const Xe=p.value.split("/").filter(qe=>qe);Xe.length>0&&(Xe.pop(),p.value=Xe.length>0?"/"+Xe.join("/")+"/":"/")}else{if(p.value.split("/").length>6){Pe.warn("U盘层级大于5级,不允许进入下一级",p.value),Lt(xt.CustomMessage,0,"error",e("toastMessages.UDiskLevelTooDeep"));return}p.value=p.value+ue+"/"}f.value=1;const He=p.value||"/";b.value.has(He)?h.value=b.value.get(He):h.value=1,S.value.has(He)?m.value=S.value.get(He):m.value=0,Pe.log("当前文件夹路径:",p.value),K(xn.UDisk,p.value,0,Ya)}},K=async(ue=xn.Local,Ee,He=0,Xe=Ya)=>{var qe,It;if(ue==xn.Local){const We=Math.floor(He/Ya)+1;if(u.value=We,v.value.has(We)){Pe.log("使用本地文件缓存,页码:",We),i.value=v.value.get(We),O.value=!0;return}if(He>g.value){O.value=!0;return}I.value=!0;let $e;try{$e=await n.getFileList(ue,Ee,He,Xe)}finally{I.value=!1,O.value=!0}if(w.value=$e.file_list.length===0,i.value=$e.file_list,((qe=$e.file_list)==null?void 0:qe.length)===0)d.value=1,g.value=0;else{const ht=$e.total??0;d.value=Math.max(1,Math.ceil(ht/Ya)),g.value=ht}v.value.set(We,$e.file_list),Pe.log("缓存本地文件数据,页码:",We),O.value=!0}else if(ue==xn.UDisk){const We=Math.floor(He/Ya)+1,$e=Ee||"/";if(E.value.has($e)&&E.value.get($e).has(We)&&(o.value=E.value.get($e).get(We),h.value=b.value.get($e),S.value.has($e)&&(m.value=S.value.get($e)),o.value.length!==0)){Pe.log("使用U盘文件缓存,路径:",$e,"页码:",We),f.value=We;return}{const Ht=S.value.get($e)??m.value;if(He>Ht){Pe.log("下边界处理,offset:",He,"totalForDir:",Ht);return}}_.value=!0;const ht=await n.getFileList(ue,Ee,He,Xe);if(_.value=!1,!ht.res)return;if(f.value=We,o.value=ht.file_list,((It=ht.file_list)==null?void 0:It.length)===0)h.value=1,b.value.set($e,1),m.value=0,S.value.set($e,0);else{const Ht=ht.total??0;h.value=Math.max(1,Math.ceil(Ht/Ya)),b.value.set($e,h.value),m.value=Ht,S.value.set($e,Ht)}{const Ht=o.value.filter(qt=>!qt.filename.toLowerCase().endsWith(".gcode")),_t=o.value.filter(qt=>qt.filename.toLowerCase().endsWith(".gcode"));o.value=[...Ht,..._t]}E.value.has($e)||E.value.set($e,new Map),E.value.get($e).set(We,o.value)}},ce=(ue,Ee)=>{ue===xn.Local?(v.value.clear(),Pe.log("清除本地文件缓存")):ue===xn.UDisk&&E.value.has("/")&&(E.value.get("/").clear(),Pe.log("清除U盘文件缓存,路径:","/"))},ye=async(ue,Ee=xn.Local)=>{const He=[];He.push(ue),await n.deletePrintFile(He,Ee),ce(Ee),K(Ee)},ee=V(()=>n.previewFileDetail),$=async ue=>{if(ue===""){Pe.log("获取文件详情(单个)时,url为空!",ue);return}l.value=!1;{s.value=ue,a.value=ue;let Ee;if(F.value==="UDisk"?(c.value=await n.getFileThumbnail(ue,xn.UDisk,!1),Ee=await n.getFileDetail(ue,xn.UDisk,void 0,!0)):(c.value=await n.getFileThumbnail(ue,xn.Local,!1),Ee=await n.getFileDetail(ue,xn.Local,void 0,!0)),Ee.error_code!=_be)return;if(Array.isArray(n.previewFileDetail.color_map)&&n.previewFileDetail.color_map.length===0){Lt(xt.CustomMessage,0,"error",e("toastMessages.InvalidFile"));return}await Cn(),l.value=!0}},ge=V(()=>{{const ue=ee.value;return{Thumbnail:c.value,EstTime:(ue==null?void 0:ue.print_time)??0,EstWeight:(ue==null?void 0:ue.total_filament_used)??0}}}),ie=async ue=>{{const Ee=await n.getFileDetail(ue,xn.Local,void 0,!1);if(Ee.error_code!=0){Lt(xt.ErrorCodeAndCustom,Ee.error_code,"error",e("toastMessages.exportFileFailed"));return}qm(ue,df.Local)}},Ie=async()=>{await n.getPrintHistoryList()},Ce=async ue=>{const Ee=[];Ee.push(ue),await n.deletePrintHistory(Ee),Ie()},oe=()=>F.value=="UDisk"?xn.UDisk:xn.Local,Ne=async ue=>{ue.storage_media=oe(),y.value=ue,Pe.log("本次打印参数:",JSON.parse(JSON.stringify(y.value))),(await n.startPrint(ue)).error_code===Eh.BedMeshDataMissing&&(y.value.config.bedlevel_force=!0,Ne(y.value))},x=(ue,Ee)=>Ee?t.startPrintAmsWithMapping(ue):(t.curPrintFileName=mp(ue.Filename),t.startPrint(ue)),N=V(()=>F.value==="file"?u.value:F.value==="UDisk"?f.value:1),U=V(()=>F.value==="file"?d.value:F.value==="UDisk"?h.value:1),de=async(ue,Ee,He)=>{F.value==="file"?(d.value=Ee,await K(xn.Local,He,(ue-1)*Ya,Ya)):(h.value=Ee,await K(xn.UDisk,p.value,(ue-1)*Ya,Ya))},we=ue=>{const Ee=ue/1048576;let He=0;return Ee<20?He=1e3:Ee<100?He=3e3:Ee<500?He=3500:Ee<1e3?He=4500:He=5500,Math.max(1e3,Math.min(5500,He))};function Ae(ue){F.value=ue}return{onDeletePrintFile:ye,onGetPrintFileInfo:$,onConfirmPrint:x,onConfirmPrintMqtt:Ne,onDeletePrintHistory:Ce,getFileList:K,calculateProcessingTime:we,switchTab:Ae,onUploadError:ue=>{Pe.error("Upload failed:",ue)},onGetAmsMappingInfo:fe,onPageChange:de,onGetUDiskFileList:pe,canvas:re,fileListData:j,printHistoryTaskDetailData:ae,printFileInfoData:ge,btnDisabled:B,currentTab:F,historyListDisabledDeleteBtn:z,historyListDisabledExportBtn:A,fileListDisabledExportBtn:T,amsMappingInfoData:X,loadingMessage:C,ListTab:Ai,currentThumbnail:c,hasGetThumbnailSuccess:l,fileListPrintBtnDisabled:Y,currentPage:N,totalPages:U,currentFolderPath:p,importBtnDisabled:q,historyListPrintBtnDisabled:M,uDiskListLoading:_,localListLoading:I,localListFetched:O,onExportPrintFile:ie}}const Gze={class:"file-list-wrapper"},Jze={class:"file-list-container"},Zze={key:0,class:"table-loading-container"},Yze={class:"empty-state"},Xze={class:"empty-content"},Qze={class:"empty-title"},Kze={key:0,class:"table-expand-content"},qze={key:0,class:"pagination-container"},$ze={class:"page-input-wrapper"},eWe={class:"page-input-container bg-color"},tWe={class:"page-separator"},nWe="delete",rWe="deleteFile",iWe=Je({__name:"print-file-list",props:{fileList:{type:Array,default:()=>[]},amsMappingInfoData:{type:Object},printFileInfo:{type:Object,default:()=>({})},btnDisabled:{type:Boolean,default:!1},fileListDisabledExportBtn:{type:Boolean,default:!1},hasGetThumbnailSuccess:{type:Boolean,default:!1},fileListPrintBtnDisabled:{type:Boolean,default:!1},currentPageProp:{type:Number,default:1},totalPagesProp:{type:Number,default:1},currentFolderPath:{type:String,default:"/"},currentTab:{type:String,default:Ai.File},canvas:{type:Object,default:()=>({})},uDiskListLoading:{type:Boolean,default:!1},localListLoading:{type:Boolean,default:!1},localListFetched:{type:Boolean,default:!1}},emits:["start-print","export-printFile","delete-printFile","get-printFileInfo","confirm-print","get-amsMapping","prevFilePage","nextFilePage","pageChange","getFileList","confirm-print-mqtt"],setup(e,{emit:t}){const n=di(),{isMobile:r}=gs(),i=jn(),{t:o}=Eo(),s=e,a=t,c=se([]),l=se([]),u=se(!1),d=se(""),f=se(""),h=se(!1),p=se(!1),g=V(()=>o("dialogs.deleteFileConfirmation",{fileName:d.value})),m=V(()=>s.currentPageProp),y=V(()=>s.totalPagesProp),v=se(s.currentPageProp),E=se("back"),b=eo({name:"",previewImage:"",printTime:"",materialWeight:"",totalLayers:0}),S=fe=>s.btnDisabled,w=V(()=>s.currentTab===Ai.UDisk?l.value:c.value),C=V(()=>{const fe=[...s.fileList];if(s.currentTab===Ai.UDisk&&s.currentFolderPath!=="/"){const le={name:"..",FileSize:0,TotalLayers:0,CreateTime:0,EstFilamentLength:0,isBackRow:!0};fe.unshift(le)}return fe}),_=V(()=>s.currentTab===Ai.File&&(!s.localListFetched||s.localListLoading)),I=fe=>fe.name,O=fe=>!fe.endsWith(".gcode");function L(fe){if(fe<19693)return"--";const le=new Date(fe*1e3),ve=le.getFullYear(),Z=String(le.getMonth()+1).padStart(2,"0"),ae=String(le.getDate()).padStart(2,"0"),pe=String(le.getHours()).padStart(2,"0"),K=String(le.getMinutes()).padStart(2,"0"),ce=String(le.getSeconds()).padStart(2,"0");return`${ve}-${Z}-${ae} ${pe}:${K}:${ce}`}function R(fe){return fe===0?"-":fe.toString()}const F=fe=>{f.value=d.value,s.currentTab===Ai.UDisk&&s.currentFolderPath!=="/"?d.value=s.currentFolderPath+fe.name:d.value=fe.name,M.value=!0,a("get-printFileInfo",d.value),p.value=!0,B.value=!1},W=async fe=>{try{s.currentTab===Ai.UDisk?await qm(fe,df.Udisk):await qm(fe,df.Local)}catch(le){Pe.error("File export failed:",le)}},J=()=>{s.currentTab===Ai.UDisk?a("pageChange",m.value-1,y.value,s.currentFolderPath+s.currentFolderPath):a("pageChange",m.value-1,y.value)},Y=()=>{s.currentTab===Ai.UDisk?a("pageChange",m.value+1,y.value,s.currentFolderPath):a("pageChange",m.value+1,y.value)},M=se(!1),B=se(!1),q=()=>{h.value=!1,p.value=!1,M.value=!1,B.value=!1,d.value="",Object.assign(b,{name:"",previewImage:"",printTime:"",materialWeight:"",totalLayers:0})};Ye(()=>s.amsMappingInfoData,fe=>{!fe||!p.value||(M.value=!0,M.value&&B.value&&(h.value=!0,p.value=!1))});const z=fe=>{fe&&Object.assign(b,{name:d.value,previewImage:fe==null?void 0:fe.Thumbnail,printTime:fe!=null&&fe.EstTime?tZ(fe.EstTime):"00h 00m 00s",materialWeight:(fe==null?void 0:fe.EstWeight)??0})};Ye([()=>s.printFileInfo,()=>s.hasGetThumbnailSuccess],([fe])=>{!fe||!s.hasGetThumbnailSuccess||Object.keys(fe).length===0||!p.value||(z(fe),B.value=!0,M.value&&B.value&&(h.value=!0,p.value=!1))}),Ye(()=>h.value,fe=>{fe||q()}),Ye(()=>s.currentPageProp,fe=>{v.value=fe});const A=(fe,le)=>{a("confirm-print",fe,le)},T=fe=>{var le,ve;if(((ve=(le=n.deviceStatus)==null?void 0:le.extruder)==null?void 0:ve.filament_detected)===$C.NoFilament&&!n.canvasConnected){Lt(xt.CustomMessage,0,"error",o("toastMessages.noFilamentDetected"));return}a("confirm-print-mqtt",fe)},k=fe=>{if(fe.isBackRow){if(E.value="back",s.currentTab===Ai.UDisk&&s.uDiskListLoading){Pe.log("U盘加载中时,忽略点击");return}a("getFileList",s.currentFolderPath,"back");return}if(O(fe.name)){if(E.value="forward",s.currentTab===Ai.UDisk&&s.uDiskListLoading)return;a("getFileList",fe.name,E.value);return}const le=fe.name;b.totalLayers=fe.TotalLayers;const ve=s.currentTab===Ai.UDisk?l:c;ve.value.includes(le)?ve.value=[]:ve.value=[le]};function j(fe){d.value=fe.name,u.value=!0}function re(){d.value&&(a("delete-printFile",d.value),u.value=!1)}const me=fe=>{const Z=fe.target.value.replace(/[^0-9]/g,"");v.value=parseInt(Z)},te=()=>{const fe=parseInt(v.value.toString())||1,le=Math.max(1,Math.min(fe,y.value));v.value=le,a("pageChange",le,y.value)},X=()=>{var fe,le;{if(s.currentTab===Ai.UDisk&&!n.isUDiskInserted)return o("table.emptyState.noUdisk");if(s.currentTab===Ai.UDisk&&((le=(fe=n.deviceStatus)==null?void 0:fe.external_device)!=null&&le.u_disk)&&n.printerBusy)return o("table.emptyState.loadingFile");if(s.currentTab===Ai.File)return o("table.emptyState.noFile")}return o("table.emptyState.noFile")};return(fe,le)=>{const ve=Pn,Z=pr,ae=Ww,pe=zw;return ne(),Te("div",Gze,[G("div",Jze,[_.value?(ne(),Te("div",Zze,[be(ve,{class:"table-loading-icon is-loading"},{default:Re(()=>[be(P(dl))]),_:1})])):(ne(),Ze(pe,{key:1,data:C.value,class:je(["uniform-table",{"mobile-uniform-table":P(r)}]),"expand-row-keys":w.value,onRowClick:k,"row-key":I},{empty:Re(()=>[G("div",Yze,[e.currentTab===P(Ai).UDisk&&!P(n).isUDiskInserted?(ne(),Ze(P(yue),{key:0,class:"empty-icon"})):e.currentTab===P(Ai).File&&!_.value?(ne(),Ze(P(jO),{key:1,class:"empty-icon"})):e.currentTab===P(Ai).UDisk&&P(n).printerBusy?(ne(),Ze(P(Z3),{key:2,class:"empty-Loading-icon spin"})):e.currentTab===P(Ai).UDisk&&!e.uDiskListLoading?(ne(),Ze(P(jO),{key:3,class:"empty-icon"})):Ke("",!0),G("div",Xze,[G("h3",Qze,Ue(X()),1)])])]),default:Re(()=>[be(ae,{type:"expand",width:"1","expand-row-keys":w.value,"row-key":I},{default:Re(({row:K})=>[!O(K.name)&&!K.isBackRow?(ne(),Te("div",Kze,[be(Z,{type:"primary",onClick:ce=>F(K),disabled:e.fileListPrintBtnDisabled},{default:Re(()=>[yt(Ue(fe.$t("buttons.startPrint")),1)]),_:2},1032,["onClick","disabled"]),!P(i)&&!(e.currentTab===P(Ai).UDisk&&e.currentFolderPath!=="/")?(ne(),Ze(Z,{key:0,type:"primary",onClick:ce=>W(K.name),disabled:e.fileListDisabledExportBtn},{default:Re(()=>[yt(Ue(fe.$t("buttons.export")),1)]),_:2},1032,["onClick","disabled"])):Ke("",!0),e.currentTab!==P(Ai).UDisk?(ne(),Ze(Z,{key:1,type:"primary",onClick:ce=>j(K),disabled:S(K)},{default:Re(()=>[yt(Ue(fe.$t("buttons.delete")),1)]),_:2},1032,["onClick","disabled"])):Ke("",!0)])):Ke("",!0)]),_:1},8,["expand-row-keys"]),be(ae,{label:fe.$t("fileTable.fileName"),"min-width":P(r)?"50%":void 0,"show-overflow-tooltip":""},{default:Re(({row:K})=>[G("span",{class:je({"ellipsis-text":P(r)})},[K.isBackRow?(ne(),Ze(P(UO),{key:0,style:{display:"inline-block","vertical-align":"middle","margin-right":"10px",transform:"translateY(-1px)"}})):O(K.name)?(ne(),Ze(P(mue),{key:1,style:{display:"inline-block","vertical-align":"middle","margin-right":"4px"}})):K.isBackRow?Ke("",!0):(ne(),Ze(P(Cue),{key:2,style:{display:"inline-block","vertical-align":"middle","margin-right":"4px"}})),yt(" "+Ue(K.isBackRow?fe.$t("buttons.backToParent"):P(mp)(K.name)||"-"),1)],2)]),_:1},8,["label","min-width"]),be(ae,{label:fe.$t("fileTable.fileSize"),"min-width":P(r)?"30%":void 0,width:P(r)?void 0:"160"},{default:Re(({row:K})=>[yt(Ue(K.isBackRow?"":O(K.name)?"--":P(nZ)(K.FileSize)),1)]),_:1},8,["label","min-width","width"]),be(ae,{label:fe.$t("fileTable.layerHeight"),"min-width":P(r)?"20%":void 0,width:P(r)?void 0:"160"},{default:Re(({row:K})=>[yt(Ue(K.isBackRow?"":O(K.name)?"--":K.TotalLayers||"-"),1)]),_:1},8,["label","min-width","width"]),P(r)?Ke("",!0):(ne(),Te(Ft,{key:0},[be(ae,{label:fe.$t("fileTable.createTime"),width:"160"},{default:Re(({row:K})=>[yt(Ue(K.isBackRow?"":O(K.name)?"--":L(K.CreateTime)),1)]),_:1},8,["label"]),be(ae,{label:fe.$t("fileTable.filamentConsume"),width:"160"},{default:Re(({row:K})=>[yt(Ue(K.isBackRow?"":O(K.name)?"--":(()=>{const ce=R(K.EstFilamentLength);return ce==="-"?ce:ce+"g"})()),1)]),_:1},8,["label"])],64))]),_:1},8,["data","class","expand-row-keys"]))]),P(pp)()?(ne(),Te("div",qze,[be(Z,{class:"page-button",onClick:J,disabled:m.value<=1},{default:Re(()=>[be(P(UO))]),_:1},8,["disabled"]),G("div",$ze,[G("div",eWe,[vn(G("input",{"onUpdate:modelValue":le[0]||(le[0]=K=>v.value=K),class:"page-number-input",onInput:me,onKeyup:Wc(te,["enter"]),type:"text",maxlength:"2"},null,544),[[Qz,v.value]]),G("span",tWe,"/ "+Ue(y.value),1)])]),be(Z,{class:"page-button",onClick:Y,disabled:m.value>=y.value},{default:Re(()=>[be(P(fue))]),_:1},8,["disabled"])])):Ke("",!0),be(al,{modelValue:u.value,"onUpdate:modelValue":le[1]||(le[1]=K=>u.value=K),"confirm-title":rWe,"confirm-message":g.value,"confirm-btn-txt":nWe,onConfirm:re},null,8,["modelValue","confirm-message"]),be(Tee,{modelValue:h.value,"onUpdate:modelValue":le[2]||(le[2]=K=>h.value=K),"file-data":b,amsMappingInfoData:e.amsMappingInfoData,canvas:e.canvas,onConfirmPrint:A,onConfirmPrintMqtt:T},null,8,["modelValue","file-data","amsMappingInfoData","canvas"])])}}}),oWe=rr(iWe,[["__scopeId","data-v-b3782355"]]),sWe={class:"table-expand-content"},aWe={key:0,class:"rtm-loading-container"},cWe={class:"loading-more"},lWe="deleteRecord",uWe="delete",dWe=Je({__name:"print-history-list",props:{printHistoryList:{type:Array,default:()=>[]},printFileInfo:{type:Object,default:()=>({})},btnDisabled:{type:Boolean,default:!1},historyListDisabledDeleteBtn:{type:Boolean,default:!1},historyListDisabledExportBtn:{type:Boolean,default:!1},hasGetThumbnailSuccess:{type:Boolean,default:!1},historyListPrintBtnDisabled:{type:Boolean,default:!1},canvas:{type:Object,default:()=>({})}},emits:["start-print","export-printFile","delete-printHistory","get-printFileInfo","confirm-print","confirm-print-mqtt"],setup(e,{emit:t}){const{isMobile:n}=gs(),{t:r}=Eo(),i=se(!1),o=di(),s=jn(),a=e,c=t,l=V(()=>n.value?{width:"100%"}:{width:"100%"}),u=se([]),d=se(!1),f=se(null),h=se(""),p=se(!1),g=V(()=>r("dialogs.deleteRecordConfirmation",{record:h.value})),m={0:"Other",1:"Complete",2:"Cancel",3:"Cancel",4:"Printing",5:"Pause"},y={1:"#0079D1",3:"#FFFFFF",default:"#E0E0E0"},v={fontFamily:"var(--app-font-family)",fontSize:"14px",fontWeight:"350",lineHeight:"20px",letterSpacing:"0em"},E=eo({name:"",previewImage:"",printTime:"",materialWeight:"",totalLayers:""}),b=V(()=>C.value?_.value:a.printHistoryList),S=A=>a.historyListPrintBtnDisabled,w=A=>!1,C=V(()=>!1),_=se([]);Ye(()=>a.printHistoryList,A=>{C.value||(_.value=A)},{deep:!0});const I=(A,T)=>{c("confirm-print",A,T)},O=A=>{c("confirm-print-mqtt",A)},L=A=>{var T,k;if(((k=(T=o.deviceStatus)==null?void 0:T.extruder)==null?void 0:k.filament_detected)===$C.NoFilament&&!o.canvasConnected){Lt(xt.CustomMessage,0,"error",r("toastMessages.noFilamentDetected"));return}h.value=A.TaskName,c("get-printFileInfo",A.TaskName),p.value=!0};Ye([()=>a.printFileInfo,()=>a.hasGetThumbnailSuccess],([A])=>{!A||!a.hasGetThumbnailSuccess||Object.keys(A).length===0||!p.value||(Object.assign(E,{name:h.value,previewImage:A==null?void 0:A.Thumbnail,printTime:A!=null&&A.EstTime?tZ(A.EstTime):"00h 00m 00s",materialWeight:(A==null?void 0:A.EstWeight)??0}),i.value=!0)},{deep:!0}),Ye(()=>i.value,A=>{A||(p.value=!1)});const R=A=>m[A]||"Unknow",F=A=>{const T=y[A]||y.default;return{...v,color:T}},W=(A,T)=>{const k=T-A,j=Math.floor(k/3600),re=Math.floor(k%3600/60);return`${String(j).padStart(2,"0")}h${String(re).padStart(2,"0")}m`},J=A=>{const T=new Date(A*1e3),k=le=>String(le).padStart(2,"0"),j=T.getFullYear(),re=k(T.getMonth()+1),me=k(T.getDate()),te=k(T.getHours()),X=k(T.getMinutes()),fe=k(T.getSeconds());return`${j}-${re}-${me} ${te}:${X}:${fe}`},Y=A=>{const T=A.TaskId;E.totalLayers=A.TotalLayers,u.value.includes(T)?u.value=[]:u.value=[T]},M=A=>{c("export-printFile",A)};function B(A){f.value=A.TaskId,h.value=mp(A.TaskName),d.value=!0}function q(){f.value&&(c("delete-printHistory",f.value),d.value=!1)}const z=A=>{};return ln(async()=>{}),(A,T)=>{const k=pr,j=Bg,re=Ww,me=zw,te=Pn;return ne(),Te("div",{class:je(["control-container",{mobile:P(n)}]),onScroll:z},[be(me,{data:b.value,"empty-text":A.$t("table.noData"),style:Ut(l.value),class:je(["uniform-table",{"mobile-uniform-table":P(n)}]),"expand-row-keys":u.value,onRowClick:Y,"row-key":X=>X.TaskId,scroll:{y:!1}},{default:Re(()=>[be(re,{type:"expand",width:"1"},{default:Re(({row:X})=>[G("div",sWe,[be(j,{content:A.$t("tooltip.fileNotExist"),placement:"top",disabled:!w(X)},{default:Re(()=>[be(k,{type:"primary",onClick:Nr(fe=>L(X),["stop"]),disabled:S(X)},{default:Re(()=>[yt(Ue(A.$t("reprint")),1)]),_:2},1032,["onClick","disabled"])]),_:2},1032,["content","disabled"]),P(s)?Ke("",!0):(ne(),Ze(j,{key:0,content:A.$t("tooltip.fileNotExist"),placement:"top",disabled:!w(X)},{default:Re(()=>[be(k,{type:"primary",onClick:Nr(fe=>M(X.TaskName),["stop"]),disabled:e.historyListDisabledExportBtn},{default:Re(()=>[yt(Ue(A.$t("export")),1)]),_:2},1032,["onClick","disabled"])]),_:2},1032,["content","disabled"])),be(k,{type:"primary",onClick:fe=>B(X),disabled:e.historyListDisabledDeleteBtn},{default:Re(()=>[yt(Ue(A.$t("delete")),1)]),_:2},1032,["onClick","disabled"])])]),_:1}),be(re,{label:A.$t("fileName"),"min-width":P(n)?"50%":void 0,"show-overflow-tooltip":""},{default:Re(({row:X})=>[G("span",{class:je({"ellipsis-text":P(n)})},Ue(P(mp)(X.TaskName)),3)]),_:1},8,["label","min-width"]),be(re,{width:P(n)?void 0:"160","min-width":P(n)?"20%":"160",label:A.$t("status")},{default:Re(({row:X})=>[G("span",{style:Ut(F(X.TaskStatus))},Ue(A.$t(`status.${R(X.TaskStatus)}`)),5)]),_:1},8,["width","min-width","label"]),P(n)?Ke("",!0):(ne(),Ze(re,{key:0,width:"200",label:A.$t("startTime")},{default:Re(({row:X})=>[yt(Ue(J(X.BeginTime)),1)]),_:1},8,["label"])),be(re,{width:P(n)?void 0:"160","min-width":P(n)?"30%":void 0,label:A.$t("totalConsumption")},{default:Re(({row:X})=>[yt(Ue(W(X.BeginTime,X.EndTime)),1)]),_:1},8,["width","min-width","label"]),P(n)?Ke("",!0):(ne(),Ze(re,{key:1,width:"160",label:A.$t("fileSize")},{default:Re(()=>[...T[2]||(T[2]=[yt("-",-1)])]),_:1},8,["label"]))]),_:1},8,["data","empty-text","style","class","expand-row-keys","row-key"]),P(s)&&P(o).rtmHistoryLoading?(ne(),Te("div",aWe,[G("div",cWe,[be(te,{class:"is-loading"},{default:Re(()=>[be(P(dl))]),_:1}),G("span",null,Ue(A.$t("loadingMore")),1)])])):Ke("",!0),be(Tee,{modelValue:i.value,"onUpdate:modelValue":T[0]||(T[0]=X=>i.value=X),canvas:e.canvas,"file-data":E,onConfirmPrint:I,onConfirmPrintMqtt:O},null,8,["modelValue","canvas","file-data"]),be(al,{modelValue:d.value,"onUpdate:modelValue":T[1]||(T[1]=X=>d.value=X),"confirm-title":lWe,"confirm-message":g.value,"confirm-btn-txt":uWe,onConfirm:q},null,8,["modelValue","confirm-message"])],34)}}}),fWe=rr(dWe,[["__scopeId","data-v-35929abf"]]),hWe={class:"import-button-container"},pWe=["accept"],mWe=Je({__name:"import-button",props:{accept:{type:String,default:".gcode"},disabled:{type:Boolean,default:!0}},emits:["upload-success","upload-error"],setup(e,{emit:t}){const{t:n}=Eo(),r=t,i=se(null),o=se(!1),s=se(0),a=se(""),c=di();Ye(()=>c.isConnected,p=>{!p&&o.value&&pp()&&(Pe.error("MQTT连接状态变化检测到断开 - 正在上传文件:",a.value),o.value=!1,a.value="",s.value=0,Zt.error(n("printStatus.offline")+","+n("toastMessages.uploadFileFailed")))});const l=async()=>{qi.printerId?f():!o.value&&i.value&&(i.value.value="",i.value.click())},u=p=>{if(!p||typeof p!="object")return;const{uploadedBytes:g,totalBytes:m}=p;if(typeof g!="number"||typeof m!="number"||m<=0)return;const y=g/m*100,v=Math.floor(y);s.value=v,c.isMainFileSending&&(c.currentUploadFileProgress=v,Pe.log("[MQTT] 文件传输进度:",v)),c.currentSendingFileName&&(o.value=!0,a.value=c.currentSendingFileName)};let d=!1;ln(()=>{d||(qr.on("upload_progress",u),d=!0,Pe.log("[上传进度] 已注册全局事件监听器")),c.isMainFileSending&&(o.value=!0,a.value=c.currentSendingFileName,s.value=c.currentUploadFileProgress,Pe.log("[上传进度] 恢复上传状态:",{fileName:c.currentSendingFileName,progress:c.currentUploadFileProgress}))});const f=async()=>{const p=await ib.openFileDialog("GCODE (*.gcode)|*.gcode");if(p&&p.length>0){let g=p[0];g=g.replace(/\\/g,"/");const m=g.split("/").pop()||"";try{o.value=!0,a.value=m,c.currentSendingFileName=m,s.value=0,await ib.uploadFile({filePath:g,fileName:m,printerId:qi.printerId??""}),r("upload-success",{fileName:a.value,fileSize:0,timestamp:new Date})}catch(y){Pe.error("File upload failed:",y),Lt(xt.CustomMessage,0,"error",y.message)}finally{s.value===100?setTimeout(()=>{(o.value||a.value)&&(o.value=!1,a.value="")},1e3):(o.value=!1,a.value="")}}},h=async p=>{var y;const m=(y=p.target.files)==null?void 0:y[0];if(m){if(!m.name.toLowerCase().endsWith(".gcode")){Zt.error("Only supports uploading .gcode files");return}o.value=!0,a.value=m.name,s.value=0;try{if(pp()){if(Pe.log("开始上传前检查MQTT连接状态:",c.isConnected),!c.isConnected)throw new Error(n("printStatus.offline")+","+n("toastMessages.uploadFileFailed"));const v={file:m,targetPath:df.Local,onProgress:E=>{s.value=Math.floor(E*100)},onConnectionCheck:()=>c.isConnected};await Tbe(v),r("upload-success",{fileName:m.name,fileSize:m.size,timestamp:new Date})}}catch(v){c.isConnected?r("upload-error",v instanceof Error?v.message:n("toastMessages.uploadFileFailed")):r("upload-error",n("printStatus.offline")+", "+n("toastMessages.uploadFileFailed"))}finally{s.value===100?setTimeout(()=>{(o.value||a.value)&&(o.value=!1,a.value="")},1e3):(o.value=!1,a.value="")}}};return(p,g)=>{const m=pr;return ne(),Te("div",hWe,[G("input",{type:"file",ref_key:"fileInput",ref:i,style:{display:"none"},accept:e.accept,onChange:h},null,40,pWe),be(m,{type:"info",size:"small",class:"import-button small-btn-size global-font-14",onClick:l,disabled:e.disabled},{default:Re(()=>[G("span",null,[be(P(eV))]),yt(" "+Ue(p.$t("import")),1)]),_:1},8,["disabled"])])}}}),gWe=rr(mWe,[["__scopeId","data-v-73636b9e"]]),vWe={class:"title-container"},yWe={class:"left-buttons"},EWe={class:"right-buttons bg-color232425"},bWe={class:"control-container"},SWe=Je({__name:"file-list",setup(e){const{fileListData:t,printHistoryTaskDetailData:n,printFileInfoData:r,btnDisabled:i,historyListDisabledDeleteBtn:o,historyListDisabledExportBtn:s,fileListDisabledExportBtn:a,currentTab:c,amsMappingInfoData:l,hasGetThumbnailSuccess:u,fileListPrintBtnDisabled:d,currentPage:f,totalPages:h,importBtnDisabled:p,historyListPrintBtnDisabled:g,localListFetched:m,localListLoading:y,uDiskListLoading:v,onDeletePrintFile:E,onGetPrintFileInfo:b,onConfirmPrint:S,onConfirmPrintMqtt:w,onDeletePrintHistory:C,switchTab:_,onUploadError:I,onGetAmsMappingInfo:O,onPageChange:L,ListTab:R,currentFolderPath:F,onGetUDiskFileList:W,canvas:J,onExportPrintFile:Y}=Vze(),M=jn(),B=V(()=>c.value===R.File||c.value===R.UDisk?oWe:fWe);return(q,z)=>{const A=pr;return ne(),Ze(ku,null,{title:Re(()=>[yt(Ue(q.$t("file")),1)]),default:Re(()=>[G("div",vWe,[G("div",yWe,[be(A,{size:"small",class:je(["global-font-14 medium-btn-size",{active:P(c)===P(R).File}]),onClick:z[0]||(z[0]=T=>P(_)(P(R).File))},{default:Re(()=>[yt(Ue(q.$t("printerFile")),1)]),_:1},8,["class"]),P(M)?Ke("",!0):(ne(),Ze(A,{key:0,size:"small",class:je(["global-font-14 medium-btn-size",{active:P(c)===P(R).UDisk}]),onClick:z[1]||(z[1]=T=>P(_)(P(R).UDisk))},{default:Re(()=>[yt(Ue(q.$t("buttons.eDisk")),1)]),_:1},8,["class"])),be(A,{size:"small",class:je(["global-font-14 medium-btn-size",{active:P(c)===P(R).PrintHistory}]),onClick:z[2]||(z[2]=T=>P(_)(P(R).PrintHistory))},{default:Re(()=>[yt(Ue(q.$t("printHistory")),1)]),_:1},8,["class"])]),G("div",EWe,[be(gWe,{accept:".gcode",disabled:P(p),onUploadError:P(I)},null,8,["disabled","onUploadError"])])]),G("div",bWe,[vn((ne(),Ze(Br(B.value),{fileList:P(t),printHistoryList:P(n),amsMappingInfoData:P(l),printFileInfo:P(r),btnDisabled:P(i),historyListPrintBtnDisabled:P(g),historyListDisabledDeleteBtn:P(o),historyListDisabledExportBtn:P(s),fileListDisabledExportBtn:P(a),hasGetThumbnailSuccess:P(u),fileListPrintBtnDisabled:P(d),currentPageProp:P(f),totalPagesProp:P(h),currentFolderPath:P(F),currentTab:P(c),canvas:P(J),uDiskListLoading:P(v),localListFetched:P(m),localListLoading:P(y),onGetFileList:P(W),onPageChange:P(L),onDeletePrintFile:P(E),onGetPrintFileInfo:P(b),onGetAmsMapping:P(O),onConfirmPrint:P(S),onConfirmPrintMqtt:P(w),onDeletePrintHistory:P(C),onExportPrintFile:P(Y)},null,40,["fileList","printHistoryList","amsMappingInfoData","printFileInfo","btnDisabled","historyListPrintBtnDisabled","historyListDisabledDeleteBtn","historyListDisabledExportBtn","fileListDisabledExportBtn","hasGetThumbnailSuccess","fileListPrintBtnDisabled","currentPageProp","totalPagesProp","currentFolderPath","currentTab","canvas","uDiskListLoading","localListFetched","localListLoading","onGetFileList","onPageChange","onDeletePrintFile","onGetPrintFileInfo","onGetAmsMapping","onConfirmPrint","onConfirmPrintMqtt","onDeletePrintHistory","onExportPrintFile"])),[[_r,!0]])])]),_:1})}}}),bH=rr(SWe,[["__scopeId","data-v-ff76a677"]]),AWe={class:"temperature-name"},CWe={class:"temperature-value"},wWe="modify",TWe="confirmTemperature",IWe=Je({__name:"temp-control",props:{name:{type:String,required:!0},currentValue:{type:[Number,String],required:!0},targetValue:{type:Number,default:0},min:{type:Number,default:0},max:{type:Number,required:!0},editable:{type:Boolean,default:!0},iconComponent:{type:Object,required:!0},tempDisabled:{type:Boolean,default:!1}},emits:["update","confirm"],setup(e,{emit:t}){const{t:n}=Eo(),r=e,i=t,o=V(()=>typeof r.currentValue=="number"?r.currentValue.toFixed(2):r.currentValue),s=V(()=>typeof r.currentValue=="number"),a=se(r.targetValue);Ye(()=>r.targetValue,g=>{a.value=g});const c=se(!1),l=se(!1),u=V(()=>n("dialogs.updateTemperatureConfirmation",{device:n(`temperature.${r.name}`),temperature:a.value}));function d(g){if(g==null||isNaN(g)){a.value=r.targetValue;return}g>r.max?(Pe.log("温度输入超过最大值"),a.value=r.max):g{const y=Pn,v=Dve,E=al;return ne(),Te(Ft,null,[G("div",{class:"temperature-control-row",onKeydown:Wc(p,["enter"])},[be(y,null,{default:Re(()=>[(ne(),Ze(Br(e.iconComponent)))]),_:1}),G("span",AWe,Ue(g.$t(`temperature.${e.name}`)),1),G("span",CWe,[yt(Ue(o.value),1),s.value?(ne(),Te(Ft,{key:0},[yt("℃")],64)):Ke("",!0),e.editable?(ne(),Te(Ft,{key:1},[yt(" / ")],64)):Ke("",!0)]),e.editable?(ne(),Ze(v,{key:0,modelValue:a.value,"onUpdate:modelValue":m[0]||(m[0]=b=>a.value=b),modelModifiers:{number:!0},min:e.min,max:e.max,disabled:e.tempDisabled,class:"temperature-input",controls:!1,"data-unit":"℃",onChange:d},null,8,["modelValue","min","max","disabled"])):Ke("",!0)],32),be(E,{modelValue:l.value,"onUpdate:modelValue":m[1]||(m[1]=b=>l.value=b),"confirm-title":TWe,"confirm-message":u.value,"confirm-btn-txt":wWe,onConfirm:f,onCancel:h},null,8,["modelValue","confirm-message"])],64)}}}),GE=rr(IWe,[["__scopeId","data-v-1eb676e7"]]);function PWe(){El();const e=di(),t=V(()=>e.deviceStatus),n=V(()=>{var u,d;return(d=(u=e.deviceStatus)==null?void 0:u.extruder)==null?void 0:d.temperature}),r=V(()=>{var d,f;return(f=(d=e.deviceStatus)==null?void 0:d.extruder)==null?void 0:f.target}),i=V(()=>{var u,d;return(d=(u=e.deviceStatus)==null?void 0:u.heater_bed)==null?void 0:d.temperature}),o=V(()=>{var u,d;return(d=(u=e.deviceStatus)==null?void 0:u.heater_bed)==null?void 0:d.target}),s=V(()=>{var u,d;return e.isChassisFanUpgraded?(d=(u=e.deviceStatus)==null?void 0:u.ztemperature_sensor)==null?void 0:d.temperature:"--"}),a=V(()=>!(e.isPrinting||e.isIdle||e.isMainExtrudering));return{onNozzleConfirm:u=>(Pe.log("确认喷嘴温度:",u),e.temperatureControl({extruder:u})),deviceStatus:t,onBedConfirm:u=>(Pe.log("确认热床温度:",u),e.temperatureControl({heater_bed:u})),tempDisabled:a,extruderTemperature:n,extruderTargetTemperature:r,hotBedTemperature:i,hotBedTargetTemperature:o,boxTemperature:s}}const OWe={class:"control-container"},_We={class:"header"},RWe={class:"label"},kWe={class:"value"},xWe={class:"temperature-display"},DWe=Je({__name:"device-temp",setup(e){const{onNozzleConfirm:t,onBedConfirm:n,tempDisabled:r,extruderTemperature:i,extruderTargetTemperature:o,hotBedTemperature:s,hotBedTargetTemperature:a,boxTemperature:c}=PWe();return(l,u)=>(ne(),Ze(ku,null,{title:Re(()=>[yt(Ue(l.$t("temperature.temperature")),1)]),default:Re(()=>[G("div",OWe,[G("div",_We,[G("span",RWe,Ue(l.$t("temperature.name")),1),G("span",kWe,Ue(l.$t("temperature.currentTarget")),1)]),G("div",xWe,[be(GE,{name:"nozzle",currentValue:P(i)||0,targetValue:P(o)||0,min:0,max:350,iconComponent:P(Mce),tempDisabled:P(r),onConfirm:P(t)},null,8,["currentValue","targetValue","iconComponent","tempDisabled","onConfirm"]),be(GE,{name:"heatedbed",currentValue:P(s)||0,targetValue:P(a)||0,min:0,max:110,iconComponent:P(Uce),tempDisabled:P(r),onConfirm:P(n)},null,8,["currentValue","targetValue","iconComponent","tempDisabled","onConfirm"]),be(GE,{name:"chamber",currentValue:P(c)??"--",min:0,max:100,editable:!1,tempDisabled:P(r),iconComponent:P(zce)},null,8,["currentValue","tempDisabled","iconComponent"])])])]),_:1}))}}),SH=rr(DWe,[["__scopeId","data-v-05855162"]]),LWe={class:"myDialogHeader font-size14"},NWe={style:{margin:"14px 10px"}},MWe={class:"dialog-content font-size14"},BWe={key:0,class:"image-container"},FWe={class:"dialog-footer"},UWe=Je({__name:"ai-detection-prompt",props:{modelValue:{type:Boolean,default:!1},message:{type:String,required:!0},imageUrl:{type:String,default:""}},emits:["confirm","update:modelValue","close"],setup(e,{emit:t}){const{isMobile:n}=gs(),r=e,i=t,o=V({get:()=>r.modelValue,set:c=>i("update:modelValue",c)}),s=()=>{i("close"),o.value=!1},a=()=>{i("confirm"),o.value=!1};return(c,l)=>{const u=pr,d=Dw,f=Zd;return ne(),Ze(f,{modelValue:o.value,"onUpdate:modelValue":l[0]||(l[0]=h=>o.value=h),width:P(n)?"90%":"31%",style:Ut(P(n)?{top:"50%",transform:"translateY(-50%)",padding:0,backgroundColor:"#1c1d1e",borderRadius:"4px",overflow:"hidden"}:{padding:0,backgroundColor:"#1c1d1e",maxWidth:"440px",borderRadius:"4px",overflow:"hidden"}),"show-close":!1,"close-on-click-modal":!1},{header:Re(()=>[G("div",LWe,[G("span",NWe,Ue(c.$t("dialogs.errorNotice")),1),be(u,{class:"close-dialog-btn",type:"info",onClick:s,size:"small"},{default:Re(()=>[be(P(Wd),{style:{width:"14px",height:"14px"}})]),_:1})])]),default:Re(()=>[G("div",MWe,[e.imageUrl?(ne(),Te("div",BWe,[be(d,{src:e.imageUrl,alt:e.message,class:"detection-image","preview-src-list":[e.imageUrl],"initial-index":0,fit:"contain","preview-teleported":""},null,8,["src","alt","preview-src-list"])])):Ke("",!0),G("p",{class:"dialog-message",style:Ut({textAlign:"center",marginTop:e.imageUrl?"16px":"0"})},Ue(e.message),5)]),G("div",FWe,[be(u,{class:"confirm-btn",type:"primary",onClick:a},{default:Re(()=>[yt(Ue(c.$t("buttons.confirm")),1)]),_:1})])]),_:1},8,["modelValue","width","style"])}}}),AH=rr(UWe,[["__scopeId","data-v-9019dc31"]]),L5="data:image/jpeg;base64,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",jWe={key:0,class:"connection-failed font-size16"},HWe={key:1,class:"connection-failed font-size16"},zWe={key:2,class:"connection-failed font-size16"},WWe={key:3,class:"relative flex justify-center items-center"},VWe=["src"],GWe={key:0},JWe={key:1},CH=3,ZWe=Je({__name:"monitor",setup(e){El();const t=di(),n=t,r=Ije(),{t:i}=Eo(),o=se(0),s=se(0),a=se(!1),c=se(null),l=se(!1),u=se(!1),d=se(!1),f=se("");function h(){if(!_.value||!O.value||!I.value)return null;try{const T=I.value.querySelector("video");if(!T||T.readyState!==HTMLMediaElement.HAVE_ENOUGH_DATA)return Pe.warn("[AI] RTC视频元素未准备好,无法截取帧"),null;const k=document.createElement("canvas");k.width=T.videoWidth||T.clientWidth,k.height=T.videoHeight||T.clientHeight;const j=k.getContext("2d");if(!j)return Pe.warn("[AI] 无法获取canvas上下文"),null;j.drawImage(T,0,0,k.width,k.height);const re=k.toDataURL("image/png");return Pe.log("[AI] 成功截取RTC视频帧"),re}catch(T){return Pe.error("[AI] 截取RTC视频帧失败:",T),null}}Ye(()=>t.exceptionCodeList,T=>{if(!(!T||!T.includes(zc.NoodleDefect)&&!T.includes(zc.foreignDetection))){if(O.value){const k=h();f.value=k||L5}else f.value=L5;Pe.log("[AI] 显示异常提示框"),T.includes(zc.foreignDetection)?d.value=!0:u.value=!0,t.setExceptionCodeList([])}}),Ye(()=>t.isPrinting,T=>{T||(d.value=!1)}),Ye(()=>{var T,k;return(k=(T=t.deviceStatus)==null?void 0:T.machine_status)==null?void 0:k.sub_status_reason_code},T=>{if(T===oV.NoodleDefect){if(O.value){const k=h();f.value=k||L5}else f.value=L5;Pe.log("[AI] 显示炒面异常提示框"),u.value=!0}});const p=V(()=>{var T,k,j,re;return[{key:"noodleDetection",title:i("aiDetection.noodleDetection"),description:i("aiDetection.noodleDetectionDesc"),value:(((k=(T=t.aiDetectionSettings)==null?void 0:T.spaghetti_detection)==null?void 0:k.status)??0)===1?rc.On:rc.Off},{key:"foreignObjectDetection",title:i("aiDetection.foreignObjectDetection"),description:i("aiDetection.foreignObjectDetectionDesc"),value:(((re=(j=t.aiDetectionSettings)==null?void 0:j.foreign_object_detection)==null?void 0:re.status)??0)===1?rc.On:rc.Off}]}),g=V(()=>{var T,k,j;return(j=(k=(T=t.aiDetectionSettings)==null?void 0:T.spaghetti_detection)==null?void 0:k.frequency)==null?void 0:j.toString()}),m=V(()=>{var T,k,j;return(j=(k=(T=t.aiDetectionSettings)==null?void 0:T.spaghetti_detection)==null?void 0:k.handing)==null?void 0:j.toString()}),y=V(()=>p.value.map(T=>({...T})));async function v(){await t.getAIDetectionSettings(),l.value=!0}function E(){l.value=!1}function b(T){try{Pe.log("[AI] 保存AI设置:",T),(T.spaghetti_detection.status===rc.On||T.foreign_object_detection.status===rc.On)&&t.deviceControlModel.lightValue===bJ.Off&&(t.setLight(!0),Pe.log("[AI] 打开灯光")),t.setAIDetectionSettings(T)}catch(k){Pe.error("[AI] 保存AI设置失败:",k)}}function S(){Pe.log("[AI] 用户确认了炒面缺陷提示",t.exceptionCodeList),u.value=!1}async function w(){if(!a.value)try{a.value=!0,await r.getVideoStreamUrl(),r.refreshKey=Date.now(),o.value+=1}catch{}finally{setTimeout(()=>{a.value=!1},1e3)}}const C=V(()=>t.cameraConnection&&t.isRegisterSuccess),_=V(()=>"false".toLowerCase()==="true"),I=se(null),O=se(!1),L=se(!1),R=se(0),F=V(()=>_.value?O.value:r.isPlaying),W=V(()=>_.value?L.value:r.isLoading);async function J(){var T;if(O.value||L.value){Pe.log("[RTC] 已经在播放或加载中,无需重复开始");return}try{if(L.value=!0,Pe.log("[RTC] 开始启动观看"),await D5.startWatching(void 0,void 0)){await M();const j=D5.getCurrentVideoTrack();if(Pe.log("[RTC] 获取视频轨道:",j?"存在":"不存在",j?{isPlaying:j.isPlaying}:null),j&&I.value){const re=I.value.childNodes.length;Pe.log("[RTC] 清理容器前子节点数量:",re);try{for(;I.value.firstChild;)I.value.removeChild(I.value.firstChild);Pe.log("[RTC] 容器清理完成,清理前子节点数:",re)}catch(te){Pe.warn("[RTC] 清理容器子节点失败:",te)}try{Pe.log("[RTC] 停止视频轨道,停止前 isPlaying:",j.isPlaying),j.stop(),Pe.log("[RTC] 视频轨道已停止")}catch(te){Pe.warn("[RTC] 停止视频轨道失败:",te)}Pe.log("[RTC] 准备播放视频轨道到容器"),await j.play(I.value),Pe.log("[RTC] videoTrack.play() 调用完成,播放后 isPlaying:",j.isPlaying),await Y();const me=(T=I.value)==null?void 0:T.querySelector("video");me&&Pe.log("[RTC] 视频元素状态:",{readyState:me.readyState,videoWidth:me.videoWidth,videoHeight:me.videoHeight,clientWidth:me.clientWidth,clientHeight:me.clientHeight,paused:me.paused,ended:me.ended,currentTime:me.currentTime}),O.value=!0,R.value=0,Pe.log("[RTC] 视频播放已启动")}else Pe.warn("[RTC] 视频轨道或容器不可用",{videoTrack:j?"存在":"不存在",container:I.value?"存在":"不存在"}),O.value=!1}else Pe.warn("[RTC] 启动观看失败"),O.value=!1}catch(k){Pe.error("[RTC] startWatching 失败:",k),O.value=!1,R.value{J()},3e3)):(Pe.error("[RTC] 已达到最大重试次数,停止重试"),R.value=0)}finally{L.value=!1}}async function Y(){return new Promise(T=>{let k=0;const j=100,re=()=>{var te;k++;const me=(te=I.value)==null?void 0:te.querySelector("video");if(me)if(me.style.width="100%",me.style.height="100%",me.style.objectFit="contain",me.style.display="block",me.style.visibility="visible",me.style.opacity="1",me.style.zIndex="1",me.style.position="relative",me.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA)Pe.log("[RTC] 视频元素已有数据"),T();else{let X=null,fe=!1;const le=()=>{fe||(fe=!0,X&&(clearTimeout(X),X=null),me.removeEventListener("loadeddata",le),me.removeEventListener("playing",ve),Pe.log("[RTC] 视频数据已加载,画面显示正常"),T())},ve=()=>{fe||(fe=!0,X&&(clearTimeout(X),X=null),me.removeEventListener("loadeddata",le),me.removeEventListener("playing",ve),Pe.log("[RTC] 视频开始播放"),T())};me.addEventListener("loadeddata",le,{once:!0}),me.addEventListener("playing",ve,{once:!0}),X=setTimeout(()=>{fe||(fe=!0,me.removeEventListener("loadeddata",le),me.removeEventListener("playing",ve),Pe.warn("[RTC] 等待视频数据加载超时,但继续显示"),T())},8e3)}else k>=j?(Pe.warn("[RTC] 等待视频元素超时"),T()):setTimeout(re,100)};re()})}async function M(){return new Promise(T=>{let k=0;const j=50,re=()=>{k++,I.value?T():k>=j?(Pe.warn("[RTC] 等待容器元素超时"),T()):setTimeout(re,100)};re()})}async function B(){var T;try{(T=D5.getCurrentVideoTrack())==null||T.stop(),await D5.stopWatching()}catch(k){Pe.error("[RTC] stopWatching 失败:",k)}finally{O.value=!1}}async function q(){_.value?O.value?await B():await J():await r.openVideoStream()}ln(async()=>{_.value?await J():C.value&&(await w(),r.isPlaying=!0)}),xi(async()=>{c.value&&(clearTimeout(c.value),c.value=null),_.value&&await B()}),Ye(C,async(T,k)=>{c.value&&(clearTimeout(c.value),c.value=null),T&&!k?_.value?await J():(await w(),r.isPlaying=!0):!T&&k&&(_.value?(await B(),Pe.log("[RTC] 不满足播放条件,停止RTC播放")):(r.isPlaying=!1,s.value++,Pe.log("[VIDEO] 不满足播放条件,停止视频播放")))}),Ye(()=>t.isCameraUpgraded,async T=>{var k;T&&((k=t.deviceAttributes)==null?void 0:k.machine_model)==tc.C2&&(_.value?((O.value||L.value)&&(await B(),await new Promise(j=>setTimeout(j,500))),await J()):(r.isPlaying=!0,await w()))});function z(){Pe.error("[VIDEO] Image load error"),r.isPlaying&&(s.value+=1,s.value>=3&&(Pe.log("[VIDEO] 多次加载失败,尝试重新打开视频流"),r.isPlaying=!1,setTimeout(()=>{r.openVideoStream(),s.value=0},2e3)))}function A(){s.value>0&&(s.value=0,Pe.log("[VIDEO] Image loaded successfully, reset retry counter",{isPlaying:r.isPlaying}))}return(T,k)=>{const j=pr,re=Gw;return ne(),Te(Ft,null,[be(ku,null,{title:Re(()=>[yt(Ue(T.$t("camera.title")),1)]),actions:Re(()=>[Ke("",!0)]),default:Re(()=>{var me;return[vn((ne(),Te("div",{class:je("video-container"+(F.value?" is-playing":""))},[P(t).cameraConnection?!P(t).isCameraUpgraded&&((me=P(t).deviceAttributes)==null?void 0:me.machine_model)==P(tc).C2?(ne(),Te("div",HWe,Ue(T.$t("camera.cameraNotUpgraded")),1)):!P(r).cameraConnection||!P(n).isConnected?(ne(),Te("div",zWe,[be(P(FO)),k[4]||(k[4]=yt(" Connection failed ",-1))])):(ne(),Te("div",WWe,[_.value?(ne(),Te("div",{key:1,ref_key:"rtcContainerRef",ref:I,style:{width:"100%",background:"#000",position:"relative"}},null,512)):(ne(),Te("img",{class:"video-img",key:o.value,src:P(r).videoUrl,alt:"",onError:z,onLoad:A},null,40,VWe)),W.value?Ke("",!0):(ne(),Ze(j,{key:2,class:"video-control-btn",onClick:q},{default:Re(()=>[F.value?(ne(),Te("span",GWe,[be(P(KC),{width:"26",height:"26"})])):(ne(),Te("span",JWe,[be(P(QC),{width:"26",height:"26"})]))]),_:1}))])):(ne(),Te("div",jWe,[be(P(FO)),k[3]||(k[3]=yt(" Camera not connected ",-1))]))],2)),[[re,W.value]])]}),_:1}),P(t).isNeedShowAiSetting?(ne(),Ze(Tje,{key:0,modelValue:l.value,"onUpdate:modelValue":k[0]||(k[0]=me=>l.value=me),"detection-items":y.value,"detection-frequency":g.value,"anomaly-handling":m.value,onSave:b,onClose:E},null,8,["modelValue","detection-items","detection-frequency","anomaly-handling"])):Ke("",!0),be(AH,{modelValue:u.value,"onUpdate:modelValue":k[1]||(k[1]=me=>u.value=me),message:P(i)("aiDetection.noodleDefectAlert"),"image-url":f.value,onConfirm:S},null,8,["modelValue","message","image-url"]),be(AH,{modelValue:d.value,"onUpdate:modelValue":k[2]||(k[2]=me=>d.value=me),message:P(i)("aiDetection.foreignObjectDetectionAlert"),"image-url":f.value,onConfirm:S},null,8,["modelValue","message","image-url"])],64)}}}),wH=rr(ZWe,[["__scopeId","data-v-27c11937"]]),YWe={class:"control-container"},XWe={class:"export-container"},QWe=Je({__name:"history-video-table",props:{tableData:{type:Array,default:()=>[]},exportTimeLapseListData:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},showCreateTime:{type:Boolean,default:!0},showSelectAll:{type:Boolean,default:!0}},emits:["export-video"],setup(e,{emit:t}){const n=t,r=e;Ye(()=>r.exportTimeLapseListData,c=>{!c||Object.keys(c).length===0||c.forEach((l,u)=>{})});const i=se([]),o=c=>{i.value=c},s=()=>{const c=[];for(let l=0;l{const l=new Date(c*1e3),u=y=>String(y).padStart(2,"0"),d=l.getFullYear(),f=u(l.getMonth()+1),h=u(l.getDate()),p=u(l.getHours()),g=u(l.getMinutes()),m=u(l.getSeconds());return`${d}-${f}-${h} ${p}:${g}:${m}`};return(c,l)=>{const u=Ww,d=zw,f=pr;return ne(),Te("div",YWe,[be(d,{data:e.tableData,"empty-text":c.$t("table.noData"),onSelectionChange:o,"row-key":"BeginTime",class:"uniform-table"},{default:Re(()=>[be(u,{type:"selection",width:"35"}),e.showSelectAll?(ne(),Ze(u,{key:0,label:c.$t("table.selectAll"),"min-width":"6%"},null,8,["label"])):Ke("",!0),be(u,{label:c.$t("table.fileName"),"min-width":"20%","show-overflow-tooltip":""},{default:Re(({row:h})=>[yt(Ue(P(mp)(h.TaskName)),1)]),_:1},8,["label"]),be(u,{label:c.$t("table.fileSize"),"min-width":"13%"},{default:Re(({row:h})=>[yt(Ue(P(nZ)(h.TimeLapseVideoSize)),1)]),_:1},8,["label"]),e.showCreateTime?(ne(),Ze(u,{key:1,label:c.$t("table.creationTime"),"min-width":"18%"},{default:Re(({row:h})=>[yt(Ue(a(h.BeginTime)),1)]),_:1},8,["label"])):Ke("",!0),be(u,{label:c.$t("table.videoDuration"),"min-width":"10%"},{default:Re(({row:h})=>[yt(Ue(h.TimeLapseVideoDuration)+"s",1)]),_:1},8,["label"])]),_:1},8,["data","empty-text"]),G("div",XWe,[be(f,{type:"info",disabled:e.disabled||i.value.length===0,onClick:s,class:"export-btn"},{default:Re(()=>[yt(Ue(c.$t("buttons.export")),1)]),_:1},8,["disabled"])])])}}}),KWe=rr(QWe,[["__scopeId","data-v-02fe7137"]]);function qWe(){const{t:e}=Eo(),t=El(),n=di(),r=se(),i=V(()=>!n.isIdle),o=V(()=>{{const d=n.websocketHistorytaskDetails;if(!d)return;const f=[];for(let h=0;hn.videoGeneratedSuccessUrls),a=V(()=>{var d;return(d=t.exportTimeLapseListData)==null?void 0:d.Data}),c=se([]),l=se("");return Ye(()=>n.subStatus,async d=>{if(d==De.TimeLapseVideoGeneratingComplete){await n.getPrintHistoryList();const f=s.value.shift();f&&(Pe.log("延时摄影合成成功,正在下载文件... ",f),await qm(f,df.Local),Pe.log("------------请求下载成功(直链方式)--------"),l.value=c.value.shift()??"",Pe.log("延时摄影合成成功,正在合成下一个视频... ",l.value),l.value&&await n.exportTimeLapse(l.value))}else d==De.TimeLapseVideoGeneratingFailed&&(Pe.log("延时摄影合成失败:",l.value),Zt.error(e("toastMessages.TimeLapseVideoGenerateFailed")+l.value),s.value.shift(),l.value=c.value.shift()??"",l.value&&(Pe.log("延时摄影合成失败,正在合成下一个视频... ",l.value),await n.exportTimeLapse(l.value)),await n.getPrintHistoryList())}),{onExportTimeLapse:async d=>{if(Pe.log("需要合成的延时视频: ",d),d.length>0)c.value=d,l.value=c.value.shift()??"",l.value&&await n.exportTimeLapse(l.value);else return!1},tableData:o,exportTimeLapseListData:a,btnDisabled:i}}const $We={class:"tableData-container"},eVe=Je({__name:"video-history",setup(e){const{isMobile:t}=gs(),{tableData:n,exportTimeLapseListData:r,onExportTimeLapse:i,btnDisabled:o}=qWe();return(s,a)=>(ne(),Ze(ku,null,{title:Re(()=>[yt(Ue(s.$t("table.videoList")),1)]),default:Re(()=>[G("div",$We,[be(KWe,{tableData:P(n),disabled:P(o),exportTimeLapseListData:P(r),showCreateTime:!P(t),showSelectAll:!P(t),onExportVideo:P(i)},null,8,["tableData","disabled","exportTimeLapseListData","showCreateTime","showSelectAll","onExportVideo"])])]),_:1}))}}),TH=rr(eVe,[["__scopeId","data-v-50c90669"]]);function tVe(){const e=di(),t=se(!1),n=se([]),r=`historyEditFilamentColorMono:${qi.sn}`;ln(()=>{try{const d=localStorage.getItem(r);if(d){const f=JSON.parse(d);Array.isArray(f)&&(n.value=f.slice(0,6))}}catch(d){Pe.error("加载单色历史耗材颜色缓存失败",d)}});const i=async()=>{await e.loadFilament()},o=async()=>{await e.unloadFilament()},s=()=>{Pe.log("编辑按钮被点击"),t.value=!0},a=V(()=>!(e.isIdle||e.isMainHoming||e.autoLeveling||e.isMainPid||e.isMainResonanceTesting||e.isMainSelfTest||e.isMainHoming||e.isMainExtrudering)),c=V(()=>!(e.isIdle||e.isPrintStopped)),l=V(()=>!(e.isIdle||e.isPrintStopped));return{showEditDialog:t,historyEditFilamentColor:n,editBtnDisabled:a,feedBtnDisabled:c,unfeedBtnDisabled:l,onFeedClick:i,onUnfeedClick:o,onEditClick:s,onUpdateFilament:async d=>{const f=d.filament_color,h=n.value.indexOf(f);h!==-1&&n.value.splice(h,1),n.value.unshift(f),n.value.length>6&&h===-1&&n.value.pop();try{localStorage.setItem(r,JSON.stringify(n.value))}catch(g){Pe.log("保存单色历史耗材颜色缓存失败",g)}await e.setMonoFilamentInfo(d)?Pe.log("更新耗材成功"):Pe.log("更新耗材失败")}}}var Iee=(e=>(e.Idle="-1",e.Feeding="0",e.Unloading="1",e))(Iee||{});const ec="#2f302f";function nVe(){El();const e=di(),t=se(!1),n=se(!0),r=se("-1"),i=se("#FF912F"),o=se(ic.Lite),s=se(0),a=V(()=>r.value!="-1"),c=se(jg.Idle),l=se(!1),u=se("-1"),d=se(!1),f=se("-1"),h=se(0),p=se([]),g=`historyEditFilamentColor:${qi.sn}`,m=se(),y=se(),v=se("-1"),E=async()=>{await e.getCanvasInfoCanvas()},b=V(()=>e.canvas);function S(ve){return ve.filament_color==""&&ve.status==Oo.Empty?wi.NoFilament:ve.filament_color==""?wi.NoRecognition:ve.filament_name}const w=V(()=>{var pe,K,ce,ye;const ve=[{id:"0",filament_name:"-",filament_color:ec,filament_type:"",brand:"-",top:"26%",left:"29.5%",enable:!0,status:Oo.Empty},{id:"1",filament_name:"-",filament_color:ec,filament_type:"",brand:"-",top:"50%",left:"29.5%",enable:!1,status:Oo.Empty},{id:"2",filament_name:"-",filament_color:ec,filament_type:"",brand:"-",top:"50%",left:"60%",enable:!0,status:Oo.Empty},{id:"3",filament_name:"-",filament_color:ec,filament_type:"",brand:"-",top:"26%",left:"60%",enable:!0,status:Oo.Empty}],Z=(ye=(ce=(K=(pe=b.value)==null?void 0:pe.canvas_info)==null?void 0:K.canvas_list)==null?void 0:ce[0])==null?void 0:ye.tray_list;if(!Array.isArray(Z)||Z.length===0)return ve;const ae=[];for(let ee=0;ee(m.value=w.value.find(Z=>Z.id===String(ve)),m.value),_=ve=>w.value.find(Z=>Z.id===String(ve));Ye(()=>e.LoadedSlotId,ve=>{v.value=String(e.LoadedSlotId),y.value=_(String(ve))},{immediate:!0}),Ye(()=>e.status,ve=>{(ve===Ge.Loading||ve===Ge.UnLoading)&&e.currentActiveTrayId!==-1&&(u.value=String(e.currentActiveTrayId),f.value="0",d.value=!0,m.value=C(u.value))},{immediate:!0}),Ye(()=>e.isLoadCompleteCanvas,ve=>{e.canvasConnected&&e.isMainLoading&&(u.value="-1",f.value="-1",d.value=!1)},{immediate:!0}),Ye(()=>e.isUnloadCompleteCanvas,ve=>{e.canvasConnected&&e.isMainUnLoading&&(u.value="-1",f.value="-1",d.value=!1)},{immediate:!0}),Ye(()=>e.currentActiveTrayId,ve=>{(e.isMainLoading||e.isMainUnLoading)&&(u.value=String(ve),f.value="0",d.value=!0,m.value=C(u.value))},{immediate:!0}),ln(()=>{try{const ve=localStorage.getItem(g);if(ve){const Z=JSON.parse(ve);Array.isArray(Z)&&(p.value=Z.slice(0,6))}}catch(ve){Pe.error("Failed to load cached filament colors",ve)}}),ln(()=>{Ye(()=>e.isRegisterSuccess,ve=>{ve&&E()},{immediate:!0})});const I=se(0),O=4,L=se([{id:b0.CheckDuringInsertion,label:"multiColor.insertDetection",value:!0,description:"multiColor.insertDetectionDesc",note:"multiColor.insertDetectionNote",activeColor:"#409EFF",loading:!1},{id:b0.CheckDuringPowerOn,label:"multiColor.bootDetection",value:!1,description:"multiColor.bootDetectionDesc",inactiveColor:"#DCDFE6",loading:!1},{id:b0.AutoFeed,label:"multiColor.autoMaterialContinuation",value:!0,description:"multiColor.autoMaterialContinuationDesc",activeColor:"#409EFF",loading:!1}]),R=V(()=>L.value.filter(ve=>ve.id===b0.AutoFeed)),F=async(ve,Z)=>{if(R.value[Z].id===b0.AutoFeed){L.value[2].loading=!0;try{await e.setAutoFillFilamentCanvas(ve)&&(L.value[2].value=ve,Pe.log("设置自动续料开关",ve))}catch(ae){Pe.error("Failed to set auto-refill",ae)}finally{L.value[2].loading=!1}}Pe.log("点击开关1",R.value[Z].label,R.value[Z].value)};Ye(()=>r.value,ve=>{var Z;i.value=((Z=_(ve))==null?void 0:Z.filament_color)??"",Pe.log("当前选中槽位的颜色变化",ve,i.value)},{immediate:!0});const W=ve=>{var Z;return((Z=w.value.find(ae=>ae.id===String(ve)))==null?void 0:Z.filament_name)===wi.NoRecognition},J=ve=>{var Z;return((Z=w.value.find(ae=>ae.id===String(ve)))==null?void 0:Z.status)===Oo.Empty},Y=async ve=>{{const Z=ve;Z.canvas_id=h.value,Z.tray_id=Number(r.value);const ae=Z.filament_color,pe=p.value.indexOf(ae);pe!==-1&&p.value.splice(pe,1),p.value.unshift(ae),p.value.length>6&&pe===-1&&p.value.pop();try{localStorage.setItem(g,JSON.stringify(p.value))}catch(ce){Pe.log("保存历史耗材颜色缓存失败",ce)}await e.setFilamentInfoCanvas(Z)&&(i.value=Z.filament_color)}},M=()=>{t.value=!0,Pe.log("编辑图标被点击了,槽位:",r.value)},B=(ve,Z)=>{r.value=String(Number(ve)),i.value=Z,Pe.log("盘位被点击",r.value,i.value)},q=(ve,Z)=>{r.value=String(Number(ve)),i.value=Z,t.value=!0,Pe.log("盘位被双击,显示编辑框",r.value,i.value)},z=se(!1),A=()=>{z.value=!0},T=ve=>{s.value=ve,I.value=ve,Pe.log(`托盘导航被点击, ${ve}`)};Ye(()=>e.canvasAutoRefill,ve=>{Pe.log("自动续料的开关变化",ve),L.value[2].value=ve??!1},{immediate:!0});const k=async()=>{Pe.log(`[ CANVASid:${h.value} ][ 槽位id:${u.value} ]进料按钮被点击`),f.value="0",await e.loadFilamentCanvas(h.value,Number(r.value))&&E(),u.value="-1",f.value="-1",d.value=!1},j=async()=>{Pe.log(`[ CANVASid:${h.value} ][ 槽位id:${u.value} ]退料按钮被点击`),f.value="1",await e.unloadFilamentCanvas(h.value,Number(r.value))&&E(),u.value="-1",f.value="-1",d.value=!1},re=ve=>ve===ic.Lite?L.value.filter(Z=>Z.id===b0.AutoFeed):L.value,me=ve=>{Pe.log("耗材名称更新")},te=ds,X=V(()=>!(e.isIdle||e.isMainHoming||e.isPaused||e.isFilamentInterruption)||d.value||!a.value||v.value===r.value||W(Number(r.value))||J(Number(r.value))),fe=V(()=>!(e.isIdle||e.isMainHoming||e.isPaused||e.isFilamentInterruption)||d.value||!a.value||v.value!==r.value||W(Number(r.value))||J(Number(r.value))),le=V(()=>!(e.isIdle||e.isMainHoming)||d.value||!a.value);return{filterSettingSwitchs:R,filamentFrom:te,showEditDialog:t,showSettingDialog:z,enbleEditFilament:n,curSelectSlotColor:i,amsListCurrentPage:I,amsListSlotsPerPage:O,curSelectSlotId:r,curVersion:o,curTrayNavIndex:s,isSelectSlot:a,isFeedWithdrawSloting:d,curAmsStatus:c,curAutoFeedSwitch:l,curFeedWithdrawSlotId:u,canvas:b,liteTrays:w,feedBtnDisabled:X,unfeedBtnDisabled:fe,editBtnDisabled:le,historyEditFilamentColor:p,curFeedWithdrawStatus:f,curActiveTrayInfo:m,curLoadedTrayInfo:y,onEditClick:M,onSwitchChange:F,onSettingClick:A,onSlotClick:B,onSlotDoubleClick:q,onTrayNavClick:T,onFeedClick:k,onUnfeedClick:j,getSettingSwitchs:re,onUpdateMaterial:me,onUpdateFilament:Y}}const rVe={class:"dialog-header"},iVe={class:"dialog-content bg-color"},oVe={class:"setting-item"},sVe={class:"setting-title"},aVe={class:"setting-item"},cVe={class:"setting-title"},lVe={class:"setting-item"},uVe={class:"setting-title"},dVe={class:"setting-item"},fVe={class:"setting-title"},hVe={class:"custom-color-picker"},pVe={class:"color-category"},mVe={class:"category-title"},gVe={class:"color-grid"},vVe=["onClick"],yVe={class:"color-category"},EVe={class:"category-title"},bVe={class:"color-grid more-colors"},SVe=["onClick"],AVe={class:"setting-item"},CVe={class:"setting-title"},wVe={class:"temperature-range"},TVe={style:{"margin-right":"10px"}},IVe={style:{"margin-left":"10px"}},PVe={class:"bottom-container"},OVe=Je({__name:"update-filament-mono",props:{title:{type:String,default:""},modelValue:{type:Boolean,default:!1},curBrand:{type:String,default:"?"},curFilamentType:{type:String,default:"?"},curFilamentName:{type:String,default:"?"},curColor:{type:String,default:"#409eff"},historyEditFilamentColor:{type:Array,default:()=>[]}},emits:["update:modelValue","update-filament"],setup(e,{emit:t}){const{isMobile:n}=gs(),r=t,i=e,o=se(["ELEGOO","Generic"]),s=V(()=>String(h.value??"").trim().toUpperCase()),a=V(()=>s.value==="ELEGOO"?DZ():s.value==="GENERIC"?LZ():l4()),c=V(()=>NZ()),l=se(!1),u=se(!1),d=se(!1),f=se(i.curFilamentName),h=se(i.curBrand),p=se(i.curFilamentType),g=se(!1),m=se(""),y=se(!1),v=(W,J)=>{const Y=Pi(W),M=String(J??"").trim().toUpperCase();return M?M==="ELEGOO"?!!(Y!=null&&Y.elegoo):M==="GENERIC"?!!(Y!=null&&Y.generic):!0:!0},E=V(()=>{const W=String(p.value??"").trim(),J=s.value;let Y;return W?Y=ob(W)||[]:Y=a.value,J&&(Y=Y.filter(M=>v(M,J))),!W&&!J?l4():Y}),b=["#FFFFFF","#FFF242","#DBF47A","#09CC3A","#077747","#0B6283","#0BE2A0","#74D9F3","#48A7FA","#2850DF","#433089","#A03BF7","#F32FF8","#D4B1DD","#F95D77","#F72221","#7C4C00","#F88D36","#FCEBD7","#D2C5A3","#AF7832","#898989","#BCBCBC","#000000"],S=W=>{m.value=W,g.value=!1,y.value=!1},w=()=>{var W,J,Y,M;return{canvas_id:0,tray_id:0,brand:h.value,filament_type:(W=Pi(f.value))==null?void 0:W.type,filament_name:f.value,filament_code:(J=Pi(f.value))==null?void 0:J.code,filament_color:m.value||i.curColor,filament_min_temp:(Y=Pi(f.value))==null?void 0:Y.temperature.min,filament_max_temp:(M=Pi(f.value))==null?void 0:M.temperature.max}};function C(){l.value=!1;const W=Pi(f.value);if(!s.value){const Y=o.value.find(M=>v(f.value,M));Y&&(h.value=Y)}if(!String(p.value??"").trim()){const Y=W==null?void 0:W.type;Y&&(p.value=Y)}}function _(){d.value=!1;const W=E.value;W.length>0?f.value=W[0]:f.value=""}function I(){u.value=!1;const W=E.value;W.includes(f.value)||(f.value=W[0]||"")}const O=V({get:()=>i.modelValue,set:W=>r("update:modelValue",W)});Ye(O,W=>{W&&(f.value=i.curFilamentName,h.value=i.curBrand,p.value=i.curFilamentType,m.value="",l.value=!1,u.value=!1,y.value=!1)});const L=()=>{p.value="",f.value="",h.value="",m.value=ec,l.value=!1,u.value=!1,y.value=!1},R=()=>{if(!o.value.includes(h.value)){u.value=!0;return}if(f.value===wi.NoRecognition||f.value===wi.NoFilament){l.value=!0;return}const W=m.value||i.curColor||"";if(!b.some(Y=>String(Y).toUpperCase()===String(W).toUpperCase())){y.value=!0;return}l.value=!1,u.value=!1,y.value=!1,r("update-filament",w()),m.value="",O.value=!1},F=()=>{O.value=!1};return(W,J)=>{const Y=pr,M=Ug,B=Fg,q=Dp,z=Zd;return ne(),Ze(z,{modelValue:O.value,"onUpdate:modelValue":J[4]||(J[4]=A=>O.value=A),width:P(n)?" 90%":"500px","show-close":!1,"close-on-click-modal":!1,style:{padding:0},class:"bg-color"},{header:Re(()=>[G("div",rVe,[G("span",null,Ue(e.title),1),be(Y,{class:"close-btn",type:"info",size:"small",onClick:F},{default:Re(()=>[be(P(Wd))]),_:1})])]),default:Re(()=>{var A,T;return[G("div",iVe,[G("div",oVe,[G("span",sVe,Ue(W.$t("multiColor.manufacturer")),1),be(B,{modelValue:h.value,"onUpdate:modelValue":J[0]||(J[0]=k=>h.value=k),class:je(["select-filament",{"error-select":u.value}]),placeholder:W.$t("multiColor.pleaseSelect"),onChange:I},{default:Re(()=>[(ne(!0),Te(Ft,null,Rr(o.value,k=>(ne(),Ze(M,{key:k,label:k,value:k},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","class"])]),G("div",aVe,[G("span",cVe,Ue(W.$t("multiColor.filamentType")),1),be(B,{modelValue:p.value,"onUpdate:modelValue":J[1]||(J[1]=k=>p.value=k),class:je(["select-filament",{"error-select":d.value}]),placeholder:W.$t("multiColor.pleaseSelect"),onChange:_},{default:Re(()=>[(ne(!0),Te(Ft,null,Rr(c.value,k=>(ne(),Ze(M,{key:k,label:k,value:k},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","class"])]),G("div",lVe,[G("span",uVe,Ue(W.$t("multiColor.filamentSilk")),1),be(B,{modelValue:f.value,"onUpdate:modelValue":J[2]||(J[2]=k=>f.value=k),class:je(["select-filament",{"error-select":l.value}]),placeholder:W.$t("multiColor.pleaseSelect"),onChange:C},{default:Re(()=>[(ne(!0),Te(Ft,null,Rr(E.value,k=>(ne(),Ze(M,{key:k,label:k,value:k},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","class"])]),G("div",dVe,[G("span",fVe,Ue(W.$t("multiColor.color")),1),be(q,{"popper-style":P(n)?{left:"50%",transform:"translateX(-50%)",marginTop:"8px",padding:0}:{marginLeft:"8px",padding:0},placement:P(n)?"bottom":"right","show-arrow":!1,width:"330",trigger:"click",visible:g.value,"onUpdate:visible":J[3]||(J[3]=k=>g.value=k)},{reference:Re(()=>[be(Y,{class:je(["color-button",{"error-color":y.value}]),style:Ut({backgroundColor:m.value||e.curColor})},null,8,["class","style"])]),default:Re(()=>[G("div",hVe,[G("div",pVe,[G("div",mVe,[yt(Ue(W.$t("multiColor.historyColor"))+" ",1),be(P(J3))]),G("div",gVe,[(ne(!0),Te(Ft,null,Rr(e.historyEditFilamentColor,(k,j)=>(ne(),Te("div",{key:"box-"+j,class:"color-dot",style:Ut({backgroundColor:k}),onClick:re=>S(k)},null,12,vVe))),128))])]),G("div",yVe,[G("div",EVe,[yt(Ue(W.$t("multiColor.moreColor"))+" ",1),be(P(J3))]),G("div",bVe,[(ne(),Te(Ft,null,Rr(b,(k,j)=>G("div",{key:"more-"+j,class:"color-dot",style:Ut({backgroundColor:k}),onClick:re=>S(k)},null,12,SVe)),64))])])])]),_:1},8,["popper-style","placement","visible"])]),G("div",AVe,[G("span",CVe,Ue(W.$t("multiColor.nozzleTmperature")),1),G("div",wVe,[G("span",TVe,Ue((A=P(Pi)(f.value))==null?void 0:A.temperature.min)+"°C",1),be(P(rV)),G("span",IVe,Ue((T=P(Pi)(f.value))==null?void 0:T.temperature.max)+"°C",1)])]),G("div",PVe,[be(Y,{class:"cancel-btn",type:"info",onClick:F},{default:Re(()=>[yt(Ue(W.$t("buttons.cancel")),1)]),_:1}),be(Y,{class:"reset-btn",type:"primary",onClick:L},{default:Re(()=>[yt(Ue(W.$t("buttons.reset")),1)]),_:1}),be(Y,{class:"confirm-btn",type:"primary",onClick:R},{default:Re(()=>[yt(Ue(W.$t("buttons.confirm")),1)]),_:1})])])]}),_:1},8,["modelValue","width"])}}}),_Ve=rr(OVe,[["__scopeId","data-v-0ed6e997"]]),RVe={key:0,class:"loading-container"},kVe={key:1,class:"single-color"},xVe={class:"preview"},DVe={class:"tray-label"},LVe={key:1,class:"tray-label"},NVe={class:"actions"},MVe=Je({__name:"single-color",setup(e){const{onFeedClick:t,onUnfeedClick:n,onEditClick:r,onUpdateFilament:i,showEditDialog:o,historyEditFilamentColor:s,editBtnDisabled:a,feedBtnDisabled:c,unfeedBtnDisabled:l}=tVe(),u=di(),d=V(()=>{var m;return((m=u.monoFilamentInfo)==null?void 0:m.brand)??""}),f=V(()=>{var m;return((m=u.monoFilamentInfo)==null?void 0:m.filament_type)??""}),h=V(()=>{var m;return((m=u.monoFilamentInfo)==null?void 0:m.filament_name)??""}),p=V(()=>{var m;return((m=u.monoFilamentInfo)==null?void 0:m.filament_color)??""}),g=V(()=>u.canvas===void 0);return(m,y)=>{const v=Pn,E=Dp,b=pr;return ne(),Ze(ku,null,{title:Re(()=>[yt(Ue(m.$t("filament")),1)]),default:Re(()=>[g.value?(ne(),Te("div",RVe,[be(v,{class:"loading-icon is-loading"},{default:Re(()=>[be(P(dl))]),_:1})])):(ne(),Te("div",kVe,[G("div",xVe,[be(P(Hue),{class:"single-filament-rack",style:Ut({"--curFilamentColor":p.value,"--tray-length":"110px"}),onDblclick:Nr(P(r),["stop"])},null,8,["style","onDblclick"]),be(P(Fue),{class:"tray-guideline"}),h.value?(ne(),Ze(E,{key:0,placement:"top",effect:"dark",trigger:"hover","show-arrow":!1,offset:2,"popper-style":{padding:"8px",background:p.value||"#333334",color:P(Gc)(p.value||"#333334"),textAlign:"center",width:"auto",minWidth:"100px",maxHeight:"34px",border:"1px solid black"}},{reference:Re(()=>[G("span",DVe,Ue(f.value),1)]),default:Re(()=>[yt(" "+Ue(h.value),1)]),_:1},8,["popper-style"])):(ne(),Te("span",LVe,Ue(f.value),1))]),G("div",NVe,[be(b,{type:"primary",class:"action-btn",disabled:P(c),onClick:P(t)},{default:Re(()=>[yt(Ue(m.$t("buttons.feed")),1)]),_:1},8,["disabled","onClick"]),be(b,{type:"primary",class:"action-btn",disabled:P(l),onClick:P(n)},{default:Re(()=>[yt(Ue(m.$t("buttons.unfeed")),1)]),_:1},8,["disabled","onClick"]),be(b,{class:"edit-btn",disabled:P(a),onClick:P(r)},{default:Re(()=>[yt(Ue(m.$t("buttons.edit")),1)]),_:1},8,["disabled","onClick"])])])),be(_Ve,{modelValue:P(o),"onUpdate:modelValue":y[0]||(y[0]=S=>En(o)?o.value=S:null),curBrand:d.value,curFilamentType:f.value,curFilamentName:h.value,curColor:p.value,historyEditFilamentColor:P(s),onUpdateFilament:P(i)},null,8,["modelValue","curBrand","curFilamentType","curFilamentName","curColor","historyEditFilamentColor","onUpdateFilament"])]),_:1})}}}),IH=rr(MVe,[["__scopeId","data-v-6700aeb5"]]),BVe={class:"dialog-header"},FVe={class:"dialog-content bg-color"},UVe={class:"setting-item"},jVe={class:"setting-title"},HVe={key:1,class:"font-size12"},zVe={class:"setting-item"},WVe={class:"setting-title"},VVe={class:"setting-item"},GVe={class:"setting-title"},JVe={key:1,class:"font-size12"},ZVe={class:"setting-item"},YVe={class:"setting-title"},XVe={class:"custom-color-picker"},QVe={class:"color-category"},KVe={class:"category-title"},qVe={class:"color-grid"},$Ve=["onClick"],eGe={class:"color-category"},tGe={class:"category-title"},nGe={class:"color-grid more-colors"},rGe=["onClick"],iGe={class:"setting-item"},oGe={class:"setting-title"},sGe={class:"temperature-range"},aGe={style:{"margin-right":"10px"}},cGe={style:{"margin-left":"10px"}},lGe={class:"bottom-container"},uGe=Je({__name:"update-filament",props:Dm({title:{type:String,default:""},temperatureMin:{type:Number,default:190},temperatureMax:{type:Number,default:220},modelValue:{type:Boolean,default:!1},enbleEditFilament:{type:Boolean,default:!1},curSelectSlotColor:{type:String,default:"#409eff"},curSelectSlotId:{type:String,default:""},liteTrays:{type:Array,default:()=>[]},historyEditFilamentColor:{type:Array,default:()=>[]}},{curFilamentName:{type:String,default:""},curFilamentNameModifiers:{},curFilamentType:{type:String,default:""},curFilamentTypeModifiers:{},curBrand:{type:String,default:""},curBrandModifiers:{}}),emits:Dm(["update:modelValue","update:filamentName","update-color","update:manufacturer","update-filament"],["update:curFilamentName","update:curFilamentType","update:curBrand"]),setup(e,{emit:t}){const{isMobile:n}=gs(),r=t,i=se(["ELEGOO","Generic"]),o=e,s=V(()=>String(C.value??"").trim().toUpperCase()),a=V(()=>l4()),c=A=>{const T=String(A??"").trim();return T?a.value.find(j=>j.toUpperCase().trim()===T.toUpperCase())??"":""},l=A=>{const T=Pi(A);if(A&&(T!=null&&T.type)){w.value=T.type;return}A||(w.value="")},u=A=>{const T=c(A);S.value!==T&&(S.value=T),l(T)},d=V(()=>s.value==="ELEGOO"?DZ():s.value==="GENERIC"?LZ():l4()),f=V(()=>{const A=s.value,T=NZ();return A?T.filter(k=>(ob(k)||[]).some(re=>h(re,A))):T}),h=(A,T)=>{const k=Pi(A),j=String(T??"").trim().toUpperCase();return j?j==="ELEGOO"?!!(k!=null&&k.elegoo):j==="GENERIC"?!!(k!=null&&k.generic):!0:!0},p=V(()=>{const A=String(w.value??"").trim(),T=s.value;let k;return A?k=ob(A)||[]:k=d.value,T&&(k=k.filter(j=>h(j,T))),!A&&!T?a.value:k}),g=se(!1),m=se(!1),y=se(!1),v=V(()=>{var A;return(A=o.liteTrays.find(T=>T.id==o.curSelectSlotId))==null?void 0:A.filament_name}),E=V(()=>{var A;return(A=o.liteTrays.find(T=>T.id==o.curSelectSlotId))==null?void 0:A.brand}),b=V(()=>{var A;return(A=o.liteTrays.find(T=>T.id==o.curSelectSlotId))==null?void 0:A.filament_type}),S=Nh(e,"curFilamentName"),w=Nh(e,"curFilamentType"),C=Nh(e,"curBrand");ln(()=>{Ye(v,A=>{A&&u(A)},{immediate:!0}),Ye(E,A=>{if(A&&C.value!==A){const T=i.value.find(k=>k.toUpperCase().trim()===A.toUpperCase().trim());T?C.value=T:C.value=A}},{immediate:!0}),Ye(b,A=>{if(!A)return;if(!w.value){w.value=A;return}if(String(w.value).trim().toUpperCase()!==String(A).trim().toUpperCase()){const k=f.value;(k.length===0||!k.includes(w.value))&&(w.value=A)}},{immediate:!0}),Ye(()=>o.curSelectSlotColor,A=>{A&&!I.value&&(I.value="")},{immediate:!0}),Ye(s,A=>{if(!w.value)return;const T=f.value;A&&T.length>0&&!T.includes(w.value)&&(w.value="")},{immediate:!0})});const _=se(!1),I=se(""),O=se(!1),L=["#FFFFFF","#FFF242","#DBF47A","#09CC3A","#077747","#0B6283","#0BE2A0","#74D9F3","#48A7FA","#2850DF","#433089","#A03BF7","#F32FF8","#D4B1DD","#F95D77","#F72221","#7C4C00","#F88D36","#FCEBD7","#D2C5A3","#AF7832","#898989","#BCBCBC","#000000"],R=A=>{I.value=A,_.value=!1,O.value=!1},F=()=>{var A,T,k,j;return{canvas_id:0,tray_id:0,brand:C.value,filament_type:(A=Pi(S.value))==null?void 0:A.type,filament_name:S.value,filament_code:(T=Pi(S.value))==null?void 0:T.code,filament_color:I.value?I.value:o.curSelectSlotColor,filament_min_temp:(k=Pi(S.value))==null?void 0:k.temperature.min,filament_max_temp:(j=Pi(S.value))==null?void 0:j.temperature.max}};function W(){if(g.value=!1,!s.value){const A=i.value.find(T=>h(S.value,T));A&&(C.value=A)}u(S.value)}function J(){m.value=!1;const A=p.value;A.length>0?u(A[0]):u("")}function Y(){y.value=!1;const A=p.value,T=String(S.value??""),k=c(T);if(!k){T?u(""):A.length>0&&u(A[0]);return}if(!A.includes(k)){const j=A[0]||"";u(j)}w.value&&!f.value.includes(w.value)&&(w.value="")}const M=V({get:()=>o.modelValue,set:A=>r("update:modelValue",A)});Ye(M,A=>{if(!A)return;const T=o.liteTrays.find(me=>me.id===o.curSelectSlotId),k=(T==null?void 0:T.filament_name)??"",j=(T==null?void 0:T.brand)??"",re=(T==null?void 0:T.filament_type)??"";if(k?u(k):S.value="",re?w.value=re:k||(w.value=""),j){const me=i.value.find(te=>te.toUpperCase().trim()===j.toUpperCase().trim());C.value=me??j}else C.value="";if(!k&&C.value&&w.value&&!S.value){const me=p.value;me.length>0&&u(me[0])}I.value="",g.value=!1,y.value=!1,m.value=!1,O.value=!1},{immediate:!0});const B=()=>{if(!(!i.value.find(A=>A===C.value)&&(y.value=!0,y.value))&&!((S.value===wi.NoRecognition||S.value===wi.NoFilament)&&(g.value=!0,g.value))){if(o.enbleEditFilament){const A=(I.value?I.value:o.curSelectSlotColor)||"",T=String(A).toUpperCase()===String(ec).toUpperCase();if(O.value=T,O.value)return}g.value=!1,y.value=!1,r("update-filament",F()),I.value="",M.value=!1}},q=()=>{Pe.log("重置按钮被点击了"),I.value=ec,w.value="",S.value="",C.value="",g.value=!1,y.value=!1,O.value=!1},z=()=>{M.value=!1,I.value="",u(v.value??""),C.value=E.value,g.value=!1,y.value=!1,O.value=!1};return(A,T)=>{const k=pr,j=Ug,re=Fg,me=Dp,te=Zd;return ne(),Ze(te,{modelValue:M.value,"onUpdate:modelValue":T[4]||(T[4]=X=>M.value=X),width:P(n)?" 90%":"500px","show-close":!1,"close-on-click-modal":!1,style:{padding:0},class:"bg-color"},{header:Re(()=>[G("div",BVe,[G("span",null,Ue(e.title),1),be(k,{class:"close-btn",type:"info",size:"small",onClick:z},{default:Re(()=>[be(P(Wd))]),_:1})])]),default:Re(()=>{var X,fe;return[G("div",FVe,[G("div",UVe,[G("span",jVe,Ue(A.$t("multiColor.manufacturer")),1),e.enbleEditFilament?(ne(),Ze(re,{key:0,modelValue:C.value,"onUpdate:modelValue":T[0]||(T[0]=le=>C.value=le),class:je(["select-filament",{"error-select":y.value}]),placeholder:A.$t("multiColor.pleaseSelect"),onChange:Y},{default:Re(()=>[(ne(!0),Te(Ft,null,Rr(i.value,le=>(ne(),Ze(j,{key:le,label:le,value:le},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","class"])):(ne(),Te("span",HVe,Ue(C.value),1))]),G("div",zVe,[G("span",WVe,Ue(A.$t("multiColor.filamentType")),1),be(re,{modelValue:w.value,"onUpdate:modelValue":T[1]||(T[1]=le=>w.value=le),class:je(["select-filament",{"error-select":m.value}]),placeholder:A.$t("multiColor.pleaseSelect"),onChange:J},{default:Re(()=>[(ne(!0),Te(Ft,null,Rr(f.value,le=>(ne(),Ze(j,{key:le,label:le,value:le},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","class"])]),G("div",VVe,[G("span",GVe,Ue(A.$t("multiColor.filamentSilk")),1),e.enbleEditFilament?(ne(),Ze(re,{key:0,modelValue:S.value,"onUpdate:modelValue":T[2]||(T[2]=le=>S.value=le),class:je(["select-filament",{"error-select":g.value}]),placeholder:A.$t("multiColor.pleaseSelect"),onChange:W},{default:Re(()=>[(ne(!0),Te(Ft,null,Rr(p.value,le=>(ne(),Ze(j,{key:le,label:le,value:le},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","class"])):(ne(),Te("span",JVe,Ue(S.value),1))]),G("div",ZVe,[G("span",YVe,Ue(A.$t("multiColor.color")),1),be(me,{"popper-style":P(n)?{left:"50%",transform:"translateX(-50%)",marginTop:"8px",padding:0}:{marginLeft:"8px",padding:0},placement:P(n)?"bottom":"right","show-arrow":!1,width:"330",trigger:"click",visible:_.value,"onUpdate:visible":T[3]||(T[3]=le=>_.value=le)},{reference:Re(()=>[be(k,{class:je(["color-button",{"error-color":O.value}]),disabled:!e.enbleEditFilament,style:Ut({backgroundColor:I.value||e.curSelectSlotColor})},null,8,["class","disabled","style"])]),default:Re(()=>[G("div",XVe,[G("div",QVe,[G("div",KVe,[yt(Ue(A.$t("multiColor.historyColor"))+" ",1),be(P(J3))]),G("div",qVe,[(ne(!0),Te(Ft,null,Rr(e.historyEditFilamentColor,(le,ve)=>(ne(),Te("div",{key:"box-"+ve,class:"color-dot",style:Ut({backgroundColor:le}),onClick:Z=>R(le)},null,12,$Ve))),128))])]),G("div",eGe,[G("div",tGe,[yt(Ue(A.$t("multiColor.moreColor"))+" ",1),be(P(J3))]),G("div",nGe,[(ne(),Te(Ft,null,Rr(L,(le,ve)=>G("div",{key:"more-"+ve,class:"color-dot",style:Ut({backgroundColor:le}),onClick:Z=>R(le)},null,12,rGe)),64))])])])]),_:1},8,["popper-style","placement","visible"])]),G("div",iGe,[G("span",oGe,Ue(A.$t("multiColor.nozzleTmperature")),1),G("div",sGe,[G("span",aGe,Ue((X=P(Pi)(S.value))==null?void 0:X.temperature.min)+"°C",1),be(P(rV)),G("span",cGe,Ue((fe=P(Pi)(S.value))==null?void 0:fe.temperature.max)+"°C",1)])]),G("div",lGe,[be(k,{class:"cancel-btn",type:"info",onClick:z},{default:Re(()=>[yt(Ue(A.$t("buttons.cancel")),1)]),_:1}),be(k,{class:"reset-btn",type:"primary",onClick:q},{default:Re(()=>[yt(Ue(A.$t("buttons.reset")),1)]),_:1}),be(k,{class:"confirm-btn",type:"primary",onClick:B},{default:Re(()=>[yt(Ue(A.$t("buttons.confirm")),1)]),_:1})])])]}),_:1},8,["modelValue","width"])}}}),Pee=rr(uGe,[["__scopeId","data-v-72c9a817"]]),dGe={class:"vertical-icon-card"},fGe={key:2,class:"icon-number font-size12"},hGe={key:1,class:"name-text font-size14"},pGe={class:"name-wrapper font-size14"},mGe=Je({__name:"tray-card",props:{amsSlot:{},displayHeaderMode:{default:"icon"},curSelectSlotId:{},curFeedWithdrawSlotId:{},curAmsStatus:{}},emits:["update:modelValue","update-switch","click-slot","update-filament"],setup(e,{emit:t}){const n=se(!1),r=se(!1),i=e,o=se(i.amsSlot.filamentName),s=se(i.amsSlot.brand),a=se(i.amsSlot.filamentColor),c=t;function l(){return{ams_type:ic.Standard,ams_id:u(i.amsSlot.id),tray_id:i.amsSlot.id,target_brand:s.value,target_type:i.amsSlot.filamentType,target_name:o.value,target_color:a.value}}function u(g){return g[0]}const d=()=>{n.value=!0};function f(){c("update-filament",l())}const h=()=>{c("click-slot",i.amsSlot.id)},p=()=>{r.value=!0,Pe.log("刷新图标被点击了!",i.amsSlot.id)};return(g,m)=>{const y=Pn,v=pr;return ne(),Te("div",dGe,[G("div",{class:je(["icon-container",{"refrsh-show":g.displayHeaderMode!=="name"}])},[g.displayHeaderMode==="icon"||g.displayHeaderMode==="both"?(ne(),Te(Ft,{key:0},[g.curFeedWithdrawSlotId!=g.amsSlot.id?(ne(),Ze(y,{key:0,class:je(["refresh-icon",{"is-loading":r.value}]),onClick:p},{default:Re(()=>[be(P(QV))]),_:1},8,["class"])):(ne(),Ze(y,{key:1,class:je(["loading-icon",{"is-loading":g.amsSlot.id===g.curFeedWithdrawSlotId&&g.curAmsStatus!==P(jg).Idle}])},{default:Re(()=>[be(P(Z3))]),_:1},8,["class"])),g.curFeedWithdrawSlotId!=g.amsSlot.id?(ne(),Te("span",fGe,[St(g.$slots,"icon-number",{},()=>[m[5]||(m[5]=yt("5",-1))],!0)])):Ke("",!0)],64)):(ne(),Te("span",hGe,[St(g.$slots,"header-name",{},void 0,!0)]))],2),G("div",{class:je(["hollow-circle-container",{"with-border":g.amsSlot.id===g.curSelectSlotId}])},[G("div",{class:je(["hollow-circle",{"with-question":g.amsSlot.from===P(ds).Null,"with-slash":!g.amsSlot.enabled,"thin-border":!g.amsSlot.enabled||g.amsSlot.from===P(ds).Null}]),style:Ut({borderColor:g.amsSlot.filamentColor}),onClick:m[0]||(m[0]=E=>h())},null,6)],2),G("div",pGe,[St(g.$slots,"name",{},void 0,!0)]),be(v,{class:"bottom-btn",disabled:!g.amsSlot.enabled,onClick:d},{default:Re(()=>[g.amsSlot.enabled?g.amsSlot.from===P(ds).Rfid?(ne(),Ze(P(tle),{key:1})):(ne(),Ze(P(BO),{key:2})):(ne(),Ze(P(BO),{key:0,class:"edit-false-icon"}))]),_:1},8,["disabled"]),be(Pee,{modelValue:n.value,"onUpdate:modelValue":m[1]||(m[1]=E=>n.value=E),enbleEditFilament:g.amsSlot.enabled&&(g.amsSlot.from===P(ds).User||g.amsSlot.from===P(ds).Null),curFilamentName:o.value,"onUpdate:curFilamentName":m[2]||(m[2]=E=>o.value=E),curBrand:s.value,"onUpdate:curBrand":m[3]||(m[3]=E=>s.value=E),curFilamentColor:a.value,"onUpdate:curFilamentColor":m[4]||(m[4]=E=>a.value=E),onUpdateFilament:f},null,8,["modelValue","enbleEditFilament","curFilamentName","curBrand","curFilamentColor"])])}}}),gGe=rr(mGe,[["__scopeId","data-v-c38531c2"]]),vGe={class:"dialog-header font-size16"},yGe={key:0},EGe={key:1},bGe={class:"dialog-content bg-color"},SGe={class:"setting-header"},AGe={class:"setting-title"},CGe={key:0,class:"temperature-humidity-container"},wGe={class:"humidity"},TGe={class:"humidity-value font-size14"},IGe={class:"temperature"},PGe={class:"temperature-value font-size14"},OGe={class:"setting-description"},_Ge={key:0,class:"setting-note"},RGe={key:0,class:"bottom-container"},kGe=Je({__name:"multi-color-setting",props:{curVersion:{type:String,default:ic.Standard},humidity:{type:Number,default:35},temperature:{type:Number,default:35},settingSwitchs:{type:Array,default:()=>[]},modelValue:{type:Boolean,default:!1},showHumidity:{type:Boolean,default:!1},showReturnBtn:{type:Boolean,default:!1}},emits:["update:modelValue","confirm","update-switch"],setup(e,{emit:t}){const{isMobile:n}=gs(),r=e,i=V({get:()=>r.modelValue,set:c=>o("update:modelValue",c)}),o=t,s=()=>{i.value=!1},a=(c,l)=>{var u;(u=r.settingSwitchs[l])!=null&&u.loading||o("update-switch",c,l)};return(c,l)=>{const u=pr,d=Mw,f=Zd;return ne(),Ze(f,{modelValue:i.value,"onUpdate:modelValue":l[0]||(l[0]=h=>i.value=h),width:P(n)?" 90%":"500px","show-close":!1,style:Ut({padding:0,maxHeight:P(n)?"80vh":"70vh",overflow:"auto"}),class:"bg-color"},{header:Re(()=>[G("div",vGe,[e.curVersion===P(ic).Standard?(ne(),Te("span",yGe,Ue(c.$t("multiColor.CanvasPro"))+Ue(c.$t("setting")),1)):(ne(),Te("span",EGe,Ue(c.$t("multiColor.CanvasLite"))+Ue(c.$t("setting")),1)),be(u,{class:"close-btn",type:"info",size:"small",onClick:s},{default:Re(()=>[be(P(Wd))]),_:1})])]),default:Re(()=>[G("div",bGe,[(ne(!0),Te(Ft,null,Rr(e.settingSwitchs,(h,p)=>(ne(),Te("div",{class:"setting-item",key:p},[G("div",SGe,[be(d,{modelValue:h.value,"onUpdate:modelValue":g=>h.value=g,disabled:h.loading,onChange:g=>a(!!g,p)},null,8,["modelValue","onUpdate:modelValue","disabled","onChange"]),G("span",AGe,Ue(c.$t(h.label)),1),p===0&&e.showHumidity?(ne(),Te("div",CGe,[G("div",wGe,[be(P(nV)),G("span",TGe,Ue(e.humidity)+"%RH",1)]),G("div",IGe,[be(P(nue)),G("span",PGe,Ue(e.temperature)+"℃",1)])])):Ke("",!0)]),G("div",OGe,Ue(c.$t(h.description)),1),h.note?(ne(),Te("div",_Ge,Ue(c.$t(h.note)),1)):Ke("",!0)]))),128)),e.showReturnBtn?(ne(),Te("div",RGe,[be(u,{onClick:s},{default:Re(()=>[...l[1]||(l[1]=[yt("返回",-1)])]),_:1})])):Ke("",!0)])]),_:1},8,["modelValue","width","style"])}}}),xGe=rr(kGe,[["__scopeId","data-v-0ca0532d"]]),DGe={key:0,class:"square-mark"},LGe={key:1,class:"square-mark"},NGe=Je({__name:"tray-card-nav",props:{tray:{type:Array,default:()=>[]},selected:{type:Boolean,default:!1}},emits:["click"],setup(e){return(t,n)=>(ne(),Te("div",{class:je(["all-container",{selected:e.selected}]),onClick:n[0]||(n[0]=r=>t.$emit("click"))},[(ne(!0),Te(Ft,null,Rr(e.tray,(r,i)=>(ne(),Te("div",{key:i,class:"square",style:Ut({backgroundColor:r.from===P(ds).Null||!r.enabled?"#333334":r.filamentColor})},[r.from===P(ds).Null&&r.enabled?(ne(),Te("span",DGe,"?")):Ke("",!0),r.enabled?Ke("",!0):(ne(),Te("span",LGe,"/"))],4))),128))],2))}}),MGe=rr(NGe,[["__scopeId","data-v-dd06faea"]]),BGe="data:image/png;base64,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",FGe="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAyCAYAAADcD8w1AAAQAElEQVR4AezbWajlVXYG8F2lluVYzmNpnetYpVY5RiQOFBF8EoJBKyAoJvRD++B7hEiZ0BCQhIaYQDBN4kMIiOBTIjiEKisO1xmc53vLea7BqdQasn67+U7+59S1feq3bvx67b2Gb6299v4P55xbi9vv/t/iiy+++E/WrVt363XXXXdfyRcK711zzTUfXnnllZtvvPHGuVtuuWX+ggsumDv66KPnjjjiiLkjjzzyZxE/MatXr8Yxd9ttt81fcsklnSP2SJzGgXlAZ7xmzZq5m2++ef6qq66aO+mkkzoPfcBviOgj2U488cS5Wtv8HXfcMX/ttdfOH3fccZ2HLSj/d4866qiPqvZPjj322I/L553jjz/+seXLl//rGWec8Ytaz8oLL7xwv+m2LtToRdXUfW644YaDCssPOeSQW4v4V4VrDjrooNX77LPP8qVLlx5/6KGHnrxr167RV199taISjs4+++zRypUrR6effvoETjvttBEM9VXQ6MwzzxydddZZoypytHXr1tEnn3yy4rDDDus6djGnnHLKKDj11FNHQE/OzMx0G99Vq1aN1LBly5YVS5Ys6frUwhcHKdZ4iJmZ3/Koh37RokUr5ubmVvz4448r1BwesVA8J5XfcTMzM8fUhh5bmzNTuf/48MMP/0X15dYDDjjgT2t8/Nq1a5e21sb9HQ9K2arBS+qEnliBl9dO/eUJJ5zw63PPPfePinBxLaC988477ZlnnmnPP/98e+utt9pHH33UXn/99VaFtffee699/vnn7Ysvvuj47LPPxrKa2D799NM+//jjj7s0B3Oxr776anv77bc7Jx549913O+8HH3zQ3n///TY/P9/lhx9+2PXsIH7z5s29ppdffrlLenF81UlmTtIBPYkfjzhre+2115ra1Jg1keoiwZgdvvzyy/b111+f8MMPP9zw/fff/1UdyGuvvvrq86qnR1RvF40bffvtt+9bDV6z//77//Uxxxzzm8I/1O792UUXXbSsZFuxYkWrxrdly5a1Aw88sNUl1OqUt/Ivntb222+/Vqe81SXW6rJqxdWlOb04MXVqW+14960rpNUJaHXVtCqs7dmzp9lQc34HH3zwOM9wjgcn8AX2ujoaTjXRya0WUE8dnlbrGnOqP0hNeIzVUae716d2Oja88hrjN66T3OuvBi+tpp9dm/bLOmj/VPjH7du333DTTTctW1xdWlRo5XR4XS5/XkX+RV0yp9Yp3k+BCBHt3Lmzffvtt72hiti9e3c/pTt27OiLUwx9xfeFWJAN2XfffXsRixcvbmL4aKjGRrdly5ZWJ6HzaDybmsTzt4l4NZFNnJosuupsJ598ct+kbdu2NXqLt0li5B8i8fiN+eMPvvvuu1a3ss4jn/zyqSsbrNZvvvmmr0s8PznVw7/6uKhO/LK6Wi6tRv+yNuwUjZZT0GHVyLOKZIndQ8CgwZIj1iCEmm8hfCRRRAqt+1er+1ffkCzEJihC4/iKER8ojl5efrE7MZnjsNDM1eAgyDUajXpjNBQnG4lHTsAPdLisgw8d0JurxZrF8CEDvNZXD75Wzyft6XnF64Ue6BGohUMdruXV6CPGja7AfQpLnNBquPtNMy5H/s2uWrhmkPVgaPUAbE6UhvKT6LzzzrNp/VQUX5OQHowthL8xGVQx3ZeeL/CN5BcbPVhQXar9vs6uUFKtYCxe3HAeHX0QnTrCM4zXfCddTrcg+R3AOrH9ynaP1i9r1gt+chb0ta5nrAWXmV2pY98Lr6PvdjLeOQVUUHm2JtHll1/eLr300nbOOef0xiJP0cYSSiYgEgeEh82c5APmQEcCvXmkeJCjHkDNYuWm4xeIDWIzn7ab4w7MA/7Ra7bm1m2230azyZrscFp38ohXH4gbn2gGzXYJkQIkEAwSCgI2wdlh/k45jieeeILozecnDrqy/g8n0EGp+n/G/E3kA350JHvAh44N6OlIoDPnQ9IZA15zenOYHscevRh+4E3DG4kN1ou61bZpf35igA+eiUZTMAg2Hp4SQQjYwWJsip2sd9B2/fXXN28m9aTtr0XsKUCccWTGcgx15kPEj8+QLz6piaQj+YI5GNOLh3CSsZPmwEcMnXF0JJ0r3ol20PjpERuwk2AsLx/jvRrtdLr5uxe7DwlKQkky9059zz33tEcffbQ/EMw9FFxGLqkkSSLJxNIDvQ2jNwdzkg6MIXFi6KfBzkYCOyk2ejpjko0cgg2i4wPDuT5oLMlG6pF16xsbPYiLNN6r0R4ATqqHAyIQQK9wUkM8gevDTHOabYynvw8cSPlPFy02Ohz8cJMgxpyE6bEYNZHhIfHSgThcYi2azpwfyW5MQnTGII6k54ebjD42ErcGe/MZjUbNm4g+sIkRq0/G+CYazQkYwTgwBw8eJ9uHl/ow0x+GdtPbhw8FFqgwkEA8OQQeoBtKL/TxJ9kAl0XUx93+jm6RYKFgA4AfafHerb0K4kmecJkDG90QGsQ2BB3wk1cOsZA5KT8diCfBeKLRiCgZwY64F2lsfafR6gW8f0z2kbs+/TS3CR9n2cRZmNc+seGihxRCD3QQ3y5LQQIfEmyejb3sssva+eef3z+Reqd2RdUXWn2zvf14ILvl8XEIzK0BF+CqFP3DzVAax2YMmkZOwzu40+uWgZOdr/jM6YLoJhrNyBDYRQ9G74dOsoYq3AOQ3gbYCM0GH2o8EMXhIHGmCDrjwDx2chrsOEgn2lUzMzPTP8LbVGNfD7h068ul/rHehw6fSp06fGKTzxzCacxGgjEYiyOD6OXFn0bHjwT9wT8dt1ejOYTUTuUkKtwnJZekRBbEXt/A9e8PJNDoRx55pH+cZguPAgJ649iG+eghOj5gMz1gn3rqqf6llivLF1UexBs2bGiPP/54e+yxx/oV5yrzBZUviBwIXMGQOzpSTfIYB3zBnAy83nnwe/Ng01T1WT8fuoWwYKMToAANdg+2k+59HoKInXIfXJzg+v61nybvlr5Fk8gGkWAROH+LNn7vNG8L/G+oV4O5xmr0Sy+91D+g2FS3Lw11NfnWTWO92/N54YUXmu9QxCcFHjAnYTjWtOjog9RvLu+QV8Ntru9ZXOF8AnEZTzSaAWIkzRXrPgl0mq2RbiVOtoZL6HJaunRpvwfaYb4wLN4YJ30k3ULgQ8/PIuSTx/ynmsLfpzeLjy8eEBdpDPzpwByMfxdy+Pg4cD5Fp9E/FT/RaIFJTDq5ikVmF50qhHRg8XbYpWys0eaaICGE09iGtbanbwQ9HQlswzkd4AJjUNdQioHojdnJnwO/gO+whvDFTtINEZ0+ARseh5A05wN7NZoS4ohAEzXWiTL2INR8c5ftxo0b20MPPdR8NEWuYMnCgwvMwWk3H0Jc5nwCOmMSL2ROlzEZRB9fG7UQ5ARxieEXHX0Qu7me6IexHGAsTrz1keb0sGCjkQacBAQa6HbhfuihA08++WR78MEH+73TN3pibYhYCUnxQ0lPF7CJC+jphqBLXPR0YD6M5QexsQMfMjDnA/zpjUm2wBy8/Xgp0Gxzdo3WF3OIjjR3y/3JRndjfbmHwD3JvdcD0dhtxKn2AcI7NR9vIn6t8K2euSQKt7tgDFkEGb0xmEP8ItlgaDO3CLcr4AtDH3N+kPFCMjp+gJcc6umsyxq9AOgHnXVqdGTG5gG/iUaHXIIUzAk03qcwwW7+s7Oz7f77729OtN2VQIwvlXxCtHiXl3s6eBsgvY97O7FR7KSrg470IANztyb+YknxYAxifXCRD5d4zwjxbm2AJzFksH379n4FysEf8InBMw1XqLcvzRZjzXqhN+kbaT5EdHs1WrOQIJZYAZCC6SRgV4y5sRixfhxFrmAn3wPUO7AfQD00wWaI4SOe1CA5LAJspjj+fiQVHxmdZlu8TRUvjo7MPDWIhWE9ONUir41SB1gXHS6wOTj1QW4/3ho7kNbqkIFxdMYarlfkRKM5aYCkJGgevZ20KNLpdgsBp9xC6RF6oXfKLUoTFQBJyA9cevTGOAA/HV8bB8Z8cCve3Dg6zXL7ohefWsz5p35z3NOwBjHWhNPYfRjo5LJ+G6fJcrnCxLHh9cwCOjE4SLnY+U002sLsnmZ5D3UaspMC3Z8sBoE5mPu2L42SzOL4+K7BZe2Dju8q/EodKU6zSTHGivUcwGfsoSNeHA75jcHzAb8T6EBojBrEGpM4wfcTniHe90nAoRY6dn6gHggHHrzWqmF83K58p0LPz1wtxnTWQIrRB3ETjVawS8WOkS4fjSZtgoZooh22a+aIjBUAxnSKlUyhYDEap4H0Trt4YwWB2BQbrvDQ48EBFiNGXXzYzXGIxUvSsRsDPzWIB3P15jSTTiHwB/F4SXMxasFjLl4zxU4DD9tEoylcbmDMSWMtBtyX3L+MEUoOGqYICfnbCJvG34njD/TsdHjkSCPE4wR6NfB3GwNx0ZP4cNgwMeqwaDJc/MKjHr7icOEm6dRDql9seKxLfXjijwf0Ri7SYQR6/KlLbrGwV6MFSkgiF6gIQGDOLpiPQoCOZBenOa4E9zYLGcIGKEoMHhJSGKkJIC8OucVljJuOD3+1aDg+Y1IdoCb5xYjHA+JBrfzEqQOM8Rnjx6FmPCAvGz96ddKBOeAUq5aJRnMSgBQBB4gzm7EEfIEvQsTmbGLMLUBRYCyWDx5SnHi+5uL4yA30fBPPVwywkTaXNAc+QIdDPcZscpBgTB9feY3Z5DQGeg0H9Q1jjEEN7MZ85ASx5jButKPvvuxtwdeAXq8sUDJBgJC0AKSISEXTkS43Sc0hPvzMQWI+/PGbAxt/NrmMITb2jOND4gY28/gZ46GXS+0QuzEfkg4HGIM4+XFYFwn02RBjNmALHx5r00MvGBONdn/yBGX0rvjKK6/0P2zUdCdSckACikfmBGTMT+HAFxTDHj8FgVhgA7F8SPx88IgHvhZIagAdPzowZzPGA+ZDX2NgA+NhjfxxgjEf/TCPnxg5IHo2c7cksIb4eYMbN1qRXlnWrFnTrrjiirZq1ar+S4Ykvjhy0p169zRvJXbJmJ3eKyG9q8JcUsmAD7hHgkLcK/niYcPldVJRNpYdB7CZk+LxgziSv9zhNQc6cZqlaezDeGN2vGqR25y/udrAmJ4f4JGbpFdDfBwYh8PJ9rB0WPR2otEcvDr5eciX+X6j892F3+a8J2bXEEvi9Hu3FUdnYfSSSzwEneLAQizAJz+L9f02HptCL44epzkZHR45cODSUJ/2jC1Mjexi+GoMKV59+ICPfHiMHRRwC/COjidxagnwisdHh8PJ5a8PGuvOQA7nE41uWl8QpGgnXNP98Ema0yNG5A/+/G7nndXJs1iF21VSESSbS8wu8/X6pAiFVrr+93u4LJKvOHAKzQMcqc27rFrk1Ex8Poh4tzWWF0diSTpQv1rEq8Va6Plb48qVK/svRtZBx6YW+enM8aldzdYE+PCqkW2IBRs9dBAkGEl2il1xXvi9uJsrIjC3WLEWh5+mDwAABcFJREFURZqLwQPGbPQ40qBwkOIAHxirBcQDDjBWjxrZxQObOPFgDHzEaJRxbOJd1SQ/jcUTOwlsaheLh4SM2UE8LNhoDsgCcwUjCrkC6ZEAOySGnJ7zpwNjPiQYAxsJGbMPwWbxYAzqAjFAF2kM03Oc9JAxOQTbdNxwzldfNHga9HxdDQs22gLSvGEiQRYTQkn4ksA34DscswMdDhLoAI852zDWnB7owVgMGwl0bOoOV/Qk8AnMp+OndbGLwR3Ez6l363HoNJU/sKvD7SW1TDQakfuPB4wHg5u+AHoQRCIDhJouoWKALsicBPoUZEyHjzQH4yDzaR+55bXA+PIBOvbohzJ8dMYwrEccWKd1A07+JBiD/JoMxgE+wD3036vRnrSOOgJPY42XkI60SyCZgkhATA7Jo1N8xgoyTzH0eOgAB9AvNOfrIeoweBDGD5/cAQ5jdjAPzKcRG35xQEeCcZBY9emFtxlvIx7KpPrU4wCS4iYa7XXL30k4yZwlkFiTbYAvyS1w2HA2iZ0kEikYBwoyxun7Y+/l3lnp2ORRsFyJpTMn6fhlk7wJeOdWjzEfNYEYi+MvLpAL6EHdONQTHrFBfEkY8uCXU5/0Aw+oxTrUoVaHVV/Ejhtdgbvr3XCnj99+pnr22Wf739bZITvlZDtBJDKN9yW4DzKKVjzCIRSoKDsrIT9xlae5WvgqTuNtMl8FVi1MHThwRxoz8BFrUZqDz2LlwMM/fqQ5sKlFvBibryZxuDTOYbNGuUB8YI6Hvzg59QiX/rBpsNdPsvLtrnx7xo2u98ev67VrcwX8oIEvvvhie/jhh9sDDzzQnnvuuWbXFYLIwiTxF0E+piuOTvEKIitB/6dxXrm8unmFy7tmJe7/zI20UH9VJJ9CxQMOiwIbldiqsfOSNoUNxPo3jz68OAzi8ICa5cKROow1gh6XsZr9xZN/teAZlfWKxwdy8hWH27rFqQHw8hFbdewp2+f1XfxXGr1HQDX4i/oV47/qHfJ/aoc212XxfV1We958882mERahKZJqgh130p3OIuyLlwAUYUc12ac+jTavzWzmUHkaPV8n031O0RZNh0fRFiUWF73FaJZ4OhxkLaj/4yYHQI3icIgx5ic/X6jF968YSPWQ9Hrh4OARK5+awFju+NLhVidfeZ30Ws+u6uGWavbLxXlf/Yozr9G425133vl9kfxvGf6mCvr7Wtx/1mLer4budnls27atLwQRaG7Z+h80FnGXiDQrshL1f3BUmzj+V15sNooND/8hDx2fFM0eXxsL/PkAu7kaxA7H7HgST6rb6efPN7WwJZ6en7rx4yH5kECnuTaTXl3VXOvcXvOnqvn/Xpv7q+rlv6xdu/azcaMF3nXXXdtHo9Fz5fAf5fB3q1evvq9+V3u8mj9bjZ8tgtlKPlu7PVune7ZO82xtwGxtxGydgtlKNluL6D6VtNvqEpyt++9sXdId5nV6uw0HP/OtW7fO1gNy1hiPPOwBm3wkn4AvDjWxq0ct7DjocdDTQerhp3ZgBxz4+MlljAPwRM+XTn5rrk2arU2brdvLQ9X839RJ/+fCf9emvL1u3bpdE42uZu+pZv+4cePGrfWj6Dt15P+tvkz625Lr68fM9XXprC+f9bXb6+tErC/y9ZVkDPo6DetrQyZsfPlVYT2OnY4/vTFZRfc4euBHAh9STpKvmMzZzcmAX0CXMT9jsXiGNjnNgR8fumpYXzedmMTrR101vTfV4PXV6F9Xwx94+umn360+fn3vvffuKp///9f3JkNwqN19dfny5Zuq6ZuKYFPdBzfVTm6qIjqqcV1mHkkPC83phxzxiWRfaDzU/ZxPfKeluEANsJDPUBd/ciE9jrrFbqr7dUfdDZ5+4403Pq5e7iyM/5s+0WODgdPt3n333XfvqN3ZMT8/v6P0f0BrEz3Ql6Dewn6oHvVTXHL83+INGzbsO579YfB76UDdShb9HwAAAP//obmmawAAAAZJREFUAwC90dru6VRAxAAAAABJRU5ErkJggg==",UGe={class:"printer global-relative-offset"},jGe=["src"],HGe=["src"],zGe=["onClick","onDblclick"],WGe=Je({__name:"multi-color-machine-lite",props:{filamentName:{type:String,default:"PLA"},curFeedWithdrawSlotId:{type:String,default:""},curAmsStatus:{type:String,default:jg.Idle},curSelectSlotColor:{type:String,default:"#409eff"},isFeedWithdrawSloting:{type:Boolean,default:!1},curFeedWithdrawStatus:{type:String,default:Iee.Idle},canvas:{type:Object,default:()=>({})},trays:{type:Array,default:()=>[]},editBtnDisabled:{type:Boolean,default:!1},curActiveTrayInfo:{type:Object,default:()=>({})},curLoadedTrayInfo:{type:Object,default:()=>({})}},emits:["select-slot-id","double-click-slot"],setup(e,{emit:t}){const n=t,r=di(),i=e,o=V(()=>i.curFeedWithdrawSlotId!=="-1"&&i.isFeedWithdrawSloting),s=se(!1),a=se(!1);ln(()=>{}),Ye(()=>i.isFeedWithdrawSloting,L=>{L?(a.value=!1,s.value=!0):a.value=!0},{deep:!0});const c=se("-1"),l=se("#d8d8d8"),u=se("#d8d8d8"),d=V(()=>{var L;return r.isPrinting?((L=i.curLoadedTrayInfo)==null?void 0:L.filament_color)||l.value:i.isFeedWithdrawSloting&&i.curFeedWithdrawSlotId!=="-1"&&i.curActiveTrayInfo.filament_color||l.value}),f=V(()=>{var R;const L=[l.value,l.value,l.value,l.value];if(r.isPrinting){const F=Number(r.LoadedSlotId);!Number.isNaN(F)&&F>=0&&F<=3&&(L[F]=((R=i.curLoadedTrayInfo)==null?void 0:R.filament_color)??l.value)}if(i.isFeedWithdrawSloting){const F=Number(i.curFeedWithdrawSlotId);!Number.isNaN(F)&&F>=0&&F<=3&&(L[F]=d.value??l.value)}return L}),h=V(()=>{if(r.isPrinting){const L=Number(r.LoadedSlotId);if(!Number.isNaN(L)&&L>=0&&L<=3)return L}if(i.isFeedWithdrawSloting){const L=Number(i.curFeedWithdrawSlotId);if(!Number.isNaN(L)&&L>=0&&L<=3)return L}return-1}),p=V(()=>{const W=[1,1,1,1];if(r.isPrinting){const J=Number(r.LoadedSlotId);!Number.isNaN(J)&&J>=0&&J<=3&&(W[J]=2)}if(i.isFeedWithdrawSloting){const J=Number(i.curFeedWithdrawSlotId);!Number.isNaN(J)&&J>=0&&J<=3&&(W[J]=3)}return W}),g=L=>{const R=Number(L)-1,F=i.trays.find(W=>Number(W.id)===R);return(F==null?void 0:F.status)===Oo.Empty?l.value:(F==null?void 0:F.filament_color)||l.value},m=L=>{c.value=L.id,u.value=L.filament_color,n("select-slot-id",c.value,u.value)},y=L=>{i.editBtnDisabled||(c.value=L.id,u.value=L.filament_color,n("double-click-slot",c.value,u.value))},v=L=>{var R;return(R=Pi(L))==null?void 0:R.type},E=L=>!L.filament_type&&L.status===Oo.Empty?"'/'":!L.filament_type&&L.status!==Oo.Empty?"'?'":`'${L.filament_type||v(L.filament_name)}'`,b=L=>!(L==wi.NoFilament||L==wi.NoRecognition),S=L=>L.filament_name||"-",w=()=>{const L=i.curFeedWithdrawSlotId;return{0:{top:"37%",left:"14%"},1:{top:"60%",left:"14%"},2:{top:"60%",left:"95%"},3:{top:"37%",left:"95%"}}[L]||{}},C=()=>{const L=r.lastLoadedSlotId;return{0:{top:"37%",left:"14%"},1:{top:"60%",left:"14%"},2:{top:"60%",left:"95%"},3:{top:"37%",left:"95%"}}[L]||{top:"37%",left:"14%"}},_=V(()=>r.isFilamentInterruption),I=[{id:"1",component:fle},{id:"2",component:mle},{id:"3",component:yle},{id:"4",component:Sle}],O=[{id:"1",component:Ile},{id:"2",component:_le},{id:"3",component:xle},{id:"4",component:Nle}];return(L,R)=>{const F=Dp;return ne(),Te("div",UGe,[G("img",{src:P(BGe),class:"printer-machine",alt:""},null,8,jGe),(ne(),Te(Ft,null,Rr(I,W=>be(Br(W.component),{key:W.id,class:je(`printer-curve${W.id.trim()}`),style:Ut({"--curve-color":g(W.id)})},null,8,["class","style"])),64)),be(P(lle),{class:je(["printer-machine-header-line",{active:o.value,highlighted:h.value===0}]),style:Ut({"--curve-color":f.value[0],zIndex:p.value[0]})},null,8,["class","style"]),be(P(Iue),{class:je(["printer-machine-header-line-left2",{active:o.value,highlighted:h.value===1}]),style:Ut({"--curve-color":f.value[1],zIndex:p.value[1]})},null,8,["class","style"]),be(P(_ue),{class:je(["printer-machine-header-line-left3",{active:o.value,highlighted:h.value===2}]),style:Ut({"--curve-color":f.value[2],zIndex:p.value[2]})},null,8,["class","style"]),be(P(xue),{class:je(["printer-machine-header-line-left4",{active:o.value,highlighted:h.value===3}]),style:Ut({"--curve-color":f.value[3],zIndex:p.value[3]})},null,8,["class","style"]),be(P(sle),{class:"printer-machine-header",style:Ut({"--curve-color":d.value})},null,8,["style"]),G("img",{src:P(FGe),class:"printer-machine-top",alt:""},null,8,HGe),vn(be(P(Z3),{class:je(["printer-loading",{active:o.value}]),style:Ut(w())},null,8,["class","style"]),[[_r,o.value]]),vn(be(P(Z3),{class:je(["printer-loading interrupt-loading",{active:_.value}]),style:Ut(C())},null,8,["class","style"]),[[_r,_.value]]),(ne(),Te(Ft,null,Rr(O,W=>be(Br(W.component),{key:W.id,class:je([`slot-num${W.id.trim()}`,{active:(Number(c.value)+1).toString()===W.id}])},null,8,["class"])),64)),(ne(!0),Te(Ft,null,Rr(e.trays,(W,J)=>(ne(),Ze(F,{key:`${W.id}-${J}`,placement:"bottom",effect:"dark",trigger:"hover","show-arrow":!1,offset:2,disabled:!b(W.filament_name),"popper-style":{padding:"8px",background:W.filament_color||"#333334",color:P(Gc)(W.filament_color),textAlign:"center",width:"auto",minWidth:"100px",maxHeight:"34px",border:"1px solid black"}},{reference:Re(()=>[G("div",{class:"hollow-circle",style:Ut({"--filamentType":E(W),"--curFilamentColor":W.filament_color,"--text-color":P(Gc)(W.filament_color),top:W.top,left:W.left}),onClick:Y=>m(W),onDblclick:Y=>y(W)},null,44,zGe)]),default:Re(()=>[yt(" "+Ue(S(W)),1)]),_:2},1032,["disabled","popper-style"]))),128))])}}}),VGe=rr(WGe,[["__scopeId","data-v-8da9606c"]]),GGe={key:0,class:"standard-container"},JGe={class:"standard-container__inner"},ZGe={class:"standard-tray-nav"},YGe={class:"standard-main-section"},XGe={class:"standard-left-panel"},QGe={class:"standard-vertical-group"},KGe={class:"standard-humidity-container"},qGe={class:"standard-humidity-display"},$Ge={class:"standard-instruction-text font-size14"},eJe={class:"standard-action-buttons"},tJe={class:"standard-left-action-buttons"},nJe={href:"https://www.elegoo.com.cn/",target:"_blank",rel:"noopener noreferrer"},rJe={class:"standard-right-action-buttons"},iJe={key:1,class:"lite-container"},oJe={class:"lite-wrapper"},sJe={key:0,class:"lite-btn-container global-relative-offset"},aJe={class:"lite-btn-group"},cJe={class:"lite-main-buttons"},lJe={class:"standard-instruction-text-lite font-size14"},uJe={key:1,class:"lite-mobile-btn-container global-relative-offset",style:{"--offset-top":"-2%","--offset-left":"-16%"}},dJe={href:"https://www.elegoo.com.cn/",target:"_blank",rel:"noopener noreferrer"},fJe=Je({__name:"mutil-color",props:{version:{type:String,default:ic.Standard}},setup(e){const{isMobile:t}=gs(),n={AmsBoxs:[],VtTray:{}},{filterSettingSwitchs:r,filamentFrom:i,curSelectSlotColor:o,showSettingDialog:s,showEditDialog:a,curSelectSlotId:c,curVersion:l,curAmsStatus:u,curTrayNavIndex:d,curFeedWithdrawSlotId:f,isSelectSlot:h,isFeedWithdrawSloting:p,canvas:g,liteTrays:m,feedBtnDisabled:y,unfeedBtnDisabled:v,editBtnDisabled:E,historyEditFilamentColor:b,curFeedWithdrawStatus:S,curActiveTrayInfo:w,curLoadedTrayInfo:C,onSwitchChange:_,onSettingClick:I,onEditClick:O,onSlotClick:L,onSlotDoubleClick:R,onTrayNavClick:F,onFeedClick:W,onUnfeedClick:J,onUpdateFilament:Y}=nVe();return(M,B)=>{const q=ku;return ne(),Ze(q,null,{title:Re(()=>[yt(Ue(M.$t("filament")),1)]),default:Re(()=>[P(l)===P(ic).Standard?(ne(),Te("div",GGe,[G("div",JGe,[G("div",ZGe,[(ne(!0),Te(Ft,null,Rr(n.AmsBoxs,(z,A)=>(ne(),Ze(MGe,{key:A,tray:z.TrayList,selected:P(d)===A,onClick:T=>P(F)(A)},null,8,["tray","selected","onClick"]))),128))]),G("div",YGe,[G("div",XGe,[be(gGe,{amsSlot:n.VtTray,"display-header-mode":"name","slot-type":P(i).Rfid,slotEnable:!0},{"header-name":Re(()=>[yt(Ue(M.$t("multiColor.filamentRack")),1)]),name:Re(()=>[...B[2]||(B[2]=[yt("PLA",-1)])]),_:1},8,["amsSlot","slot-type"])]),G("div",QGe,[G("div",KGe,[G("div",qGe,[be(P(Pn),null,{default:Re(()=>[(ne(),Ze(Br(P(nV))))]),_:1}),B[3]||(B[3]=G("span",{style:{color:"#66D3FE","padding-left":"2px"}},"45",-1))])])])]),G("div",$Ge,[G("span",null,Ue(M.$t("multiColor.feedNote")),1)]),G("div",eJe,[G("div",tJe,[be(P(pr),{type:"info",class:"standard-action-btn",onClick:P(I)},{default:Re(()=>[be(P(W6))]),_:1},8,["onClick"]),G("a",nJe,[be(P(pr),{type:"info",class:"standard-action-btn"},{default:Re(()=>[yt(Ue(M.$t("buttons.guide")),1)]),_:1})])]),G("div",rJe,[be(P(pr),{type:"primary",disabled:!P(h)||P(p),onClick:P(J)},{default:Re(()=>[yt(Ue(M.$t("buttons.feed")),1)]),_:1},8,["disabled","onClick"]),be(P(pr),{type:"primary",disabled:!P(h)||P(p),onClick:P(W)},{default:Re(()=>[yt(Ue(M.$t("buttons.unfeed")),1)]),_:1},8,["disabled","onClick"])])])])])):P(l)===P(ic).Lite?(ne(),Te("div",iJe,[G("div",oJe,[be(VGe,{onSelectSlotId:P(L),onDoubleClickSlot:P(R),curFeedWithdrawSlotId:P(f),trays:P(m),curAmsStatus:P(u),curSelectSlotColor:P(o),canvas:P(g),isFeedWithdrawSloting:P(p),curFeedWithdrawStatus:P(S),editBtnDisabled:P(E),curActiveTrayInfo:P(w),curLoadedTrayInfo:P(C)},null,8,["onSelectSlotId","onDoubleClickSlot","curFeedWithdrawSlotId","trays","curAmsStatus","curSelectSlotColor","canvas","isFeedWithdrawSloting","curFeedWithdrawStatus","editBtnDisabled","curActiveTrayInfo","curLoadedTrayInfo"]),P(t)?Ke("",!0):(ne(),Te("div",sJe,[G("div",aJe,[be(P(pr),{class:"standard-action-btn",onClick:P(I)},{default:Re(()=>[be(P(W6))]),_:1},8,["onClick"])]),G("div",cJe,[be(P(pr),{type:"primary",disabled:P(y),onClick:P(W)},{default:Re(()=>[yt(Ue(M.$t("buttons.feed")),1)]),_:1},8,["disabled","onClick"]),be(P(pr),{type:"primary",disabled:P(v),onClick:P(J)},{default:Re(()=>[yt(Ue(M.$t("buttons.unfeed")),1)]),_:1},8,["disabled","onClick"]),be(P(pr),{onClick:P(O),class:"lite-edit-btn",disabled:P(E)},{default:Re(()=>[yt(Ue(M.$t("buttons.edit")),1)]),_:1},8,["onClick","disabled"])]),G("div",lJe,[G("span",null,Ue(M.$t("multiColor.feedNote")),1)])])),P(t)?(ne(),Te("div",uJe,[be(P(pr),{type:"primary",disabled:P(y),onClick:P(W)},{default:Re(()=>[yt(Ue(M.$t("buttons.feed")),1)]),_:1},8,["disabled","onClick"]),be(P(pr),{type:"primary",disabled:P(v),onClick:P(J)},{default:Re(()=>[yt(Ue(M.$t("buttons.unfeed")),1)]),_:1},8,["disabled","onClick"]),be(P(pr),{onClick:P(O),class:"lite-edit-btn",disabled:P(E)},{default:Re(()=>[yt(Ue(M.$t("buttons.edit")),1)]),_:1},8,["onClick","disabled"]),G("a",dJe,[be(P(pr),{class:"standard-action-btn"},{default:Re(()=>[yt(Ue(M.$t("buttons.guide")),1)]),_:1})]),be(P(pr),{class:"standard-action-btn",onClick:P(I)},{default:Re(()=>[be(P(W6))]),_:1},8,["onClick"])])):Ke("",!0)])])):Ke("",!0),be(xGe,{modelValue:P(s),"onUpdate:modelValue":B[0]||(B[0]=z=>En(s)?s.value=z:null),onUpdateSwitch:P(_),settingSwitchs:P(r),showHumidity:P(l)===P(ic).Standard,showReturnBtn:!1,curVersion:P(l)},null,8,["modelValue","onUpdateSwitch","settingSwitchs","showHumidity","curVersion"]),P(l)===P(ic).Lite?(ne(),Ze(Pee,{key:2,modelValue:P(a),"onUpdate:modelValue":B[1]||(B[1]=z=>En(a)?a.value=z:null),enbleEditFilament:P(c)!="-1",curSelectSlotColor:P(o),curSelectSlotId:P(c),liteTrays:P(m),historyEditFilamentColor:P(b),onUpdateFilament:P(Y)},null,8,["modelValue","enbleEditFilament","curSelectSlotColor","curSelectSlotId","liteTrays","historyEditFilamentColor","onUpdateFilament"])):Ke("",!0)]),_:1})}}}),PH=rr(fJe,[["__scopeId","data-v-67f3b399"]]),hJe={class:"flex-1 flex items-center justify-between mr-5"},pJe={key:0,class:"flex flex-col justify-between items-end"},mJe={class:"status-container"},gJe={class:"model-image"},vJe={class:"image-slot"},yJe=["src"],EJe={class:"flex-1 ml-[18px] flex flex-col"},bJe={key:0,class:"flex flex-col justify-between flex-1"},SJe={class:"filename-container"},AJe={class:"detail-title"},CJe={class:"detail-filename"},wJe={class:"detail-title"},TJe={class:"detail-text"},IJe={class:"detail-title"},PJe={class:"detail-text"},OJe={class:"flex items-center"},_Je={class:"ml-2"},RJe={key:1,class:"flex flex-col flex-1 justify-around"},kJe={class:"detail-title"},xJe={class:"detail-text"},DJe={class:"detail-title"},LJe={class:"detail-text"},NJe=Je({__name:"device-status",setup(e){El();const n=di(),r=C=>typeof C=="number"&&!isNaN(C)?Math.max(0,Math.min(100,C)):0,{printerInfo:i,status:o,deviceInfo:s,pauseDisableButton:a,resumeDisableBtn:c,stopDisableBtn:l,currentThumbnail:u,displayFileName:d,curProgress:f,curPrintLayer:h,totalPrintLayer:p,subStatus:g,isMQTTConnected:m,lastSubStatus:y,isFilamentInterruption:v,showPowerOffResumeDialog:E,powerOffResumeTitle:b,powerOffResumeMsg:S,powerOffResumeBtnTxt:w}=See();return ln(()=>{}),(C,_)=>{const I=pr,O=Dw,L=KG;return ne(),Te(Ft,null,[be(ku,null,{title:Re(()=>[G("div",hJe,[be(bee,{status:P(o),subStatus:P(g),isMQTTConnected:P(m),lastSubStatus:P(y)},null,8,["status","subStatus","isMQTTConnected","lastSubStatus"]),P(n).isPrinting?(ne(),Te("div",pJe,[G("span",null,[!P(n).isPaused&&!P(v)?(ne(),Ze(I,{key:0,class:"print-control-button",disabled:P(a),onClick:P(n).pausePrint},{default:Re(()=>[G("span",null,[be(P(KC))])]),_:1},8,["disabled","onClick"])):Ke("",!0),P(n).isPaused||P(v)?(ne(),Ze(I,{key:1,class:"print-control-button",disabled:P(c),onClick:_[0]||(_[0]=R=>P(n).resumePrint(1e4*6))},{default:Re(()=>[G("span",null,[be(P(QC))])]),_:1},8,["disabled"])):Ke("",!0),be(I,{class:"print-control-button",disabled:P(l),onClick:P(n).stopPrint},{default:Re(()=>[G("span",null,[be(P($W))])]),_:1},8,["disabled","onClick"])])])):Ke("",!0)])]),default:Re(()=>{var R;return[G("div",mJe,[G("div",gJe,[be(O,{src:P(u)},{error:Re(()=>[G("div",vJe,[G("img",{src:P(EJ),alt:"error"},null,8,yJe)])]),_:1},8,["src"])]),G("div",EJe,[P(n).isPrinting?(ne(),Te("div",bJe,[G("span",SJe,[G("span",AJe,Ue(C.$t("file"))+": ",1),G("span",CJe,Ue(P(d)),1)]),G("span",null,[G("span",wJe,Ue(C.$t("printStatus.layerProgress"))+": ",1),G("span",TJe,Ue(P(h))+"/"+Ue(P(p)),1)]),G("span",null,[G("span",IJe,Ue(C.$t("printStatus.remainingPrintTime"))+": ",1),G("span",PJe,Ue(P(eZ)(P(n).remainingPrintTime)),1)]),G("div",OJe,[be(L,{class:"flex-1 self-center",percentage:r((R=P(i))==null?void 0:R.Progress),"show-text":!1,"stroke-width":3},null,8,["percentage"]),G("span",_Je,Ue(P(f))+"% ",1)])])):Ke("",!0),P(n).isPrinting?Ke("",!0):(ne(),Te("div",RJe,[G("span",null,[G("span",kJe,Ue(C.$t("deviceName"))+": ",1),G("span",xJe,Ue(P(s).name),1)]),G("span",null,[G("span",DJe,Ue(C.$t("deviceIp"))+": ",1),G("span",LJe,Ue(P(s).ip),1)])]))])])]}),_:1}),be(al,{modelValue:P(E),"onUpdate:modelValue":_[1]||(_[1]=R=>En(E)?E.value=R:null),"confirm-title":P(b),"confirm-message":P(S),"confirm-btn-txt":P(w),onConfirm:_[2]||(_[2]=R=>P(n).resumePrint(1e4*6*2)),onCancel:P(n).stopPrint},null,8,["modelValue","confirm-title","confirm-message","confirm-btn-txt","onCancel"])],64)}}}),MJe=rr(NJe,[["__scopeId","data-v-ad7b57fc"]]),BJe={class:"control-container"},FJe={class:"flex items-center gap-2 justify-between mb-[10px]"},UJe={class:"flex items-center"},jJe={class:"fan-container"},HJe=Je({__name:"device-control",setup(e){const{deviceControlModel:t,onchassisFanSpeedChange:n,onAuxiliaryFanSpeedChange:r,onModelFanSpeedChange:i,onLightChange:o,controlDisabled:s,move:a,moveToHome:c,setPrintSpeedPct:l,changeSpeedDisabled:u,chassisFanDisabled:d,lightDisabled:f,fanDisabled:h,auxiliaryFanDisabled:p,xyzDisabled:g,uiPrinterMode:m,chassisFanCmdStatus:y,auxiliaryFanCmdStatus:v,modelFanCmdStatus:E,lightCmdStatus:b,showLightOffDialog:S,onLightOffConfirm:w,onLightOffCancel:C}=Aee();return(_,I)=>{const O=Ug,L=Fg;return ne(),Te(Ft,null,[be(ku,null,{title:Re(()=>[yt(Ue(_.$t("control.control")),1)]),default:Re(()=>[G("div",BJe,[G("div",FJe,[be(wee,{step:P(t).moveStep,"onUpdate:step":I[0]||(I[0]=R=>P(t).moveStep=R),"x-pos":P(t).xPos,"y-pos":P(t).yPos,"z-pos":P(t).zPos,disabled:P(s)},null,8,["step","x-pos","y-pos","z-pos","disabled"])]),be(Cee,{class:"self-center w-full",xyzDisabled:P(g),onHomeAll:I[1]||(I[1]=R=>P(c)("XYZ")),onHomeX:I[2]||(I[2]=R=>P(c)("X")),onHomeY:I[3]||(I[3]=R=>P(c)("Y")),onHomeZ:I[4]||(I[4]=R=>P(c)("Z")),onXUp:I[5]||(I[5]=R=>P(a)("X",1)),onXDown:I[6]||(I[6]=R=>P(a)("X",-1)),onYUp:I[7]||(I[7]=R=>P(a)("Y",1)),onYDown:I[8]||(I[8]=R=>P(a)("Y",-1)),onZUp:I[9]||(I[9]=R=>P(a)("Z",1)),onZDown:I[10]||(I[10]=R=>P(a)("Z",-1))},null,8,["xyzDisabled"]),G("div",UJe,[G("span",null,Ue(_.$t("control.printSpeed")),1),be(L,{modelValue:P(m),"onUpdate:modelValue":I[11]||(I[11]=R=>En(m)?m.value=R:null),placeholder:"",style:{width:"140px"},"show-arrow":!1,offset:4,class:"ml-[10px] no-border-select",disabled:P(u),onChange:P(l)},{default:Re(()=>[(ne(!0),Te(Ft,null,Rr(P(t).printModeOptions,R=>(ne(),Ze(O,{key:R.value,label:_.$t(R.label),value:R.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled","onChange"])]),G("div",jJe,[be(wd,{class:"flex-1",title:_.$t("control.model"),value:P(t).modelFanSpeed,"onUpdate:value":I[12]||(I[12]=R=>P(t).modelFanSpeed=R),onChange:P(i),disabled:P(h),defaultOpenValue:100,cmdStatus:P(E),"component-type":P(na).ModelFan},{icon:Re(()=>[be(P(Mh))]),_:1},8,["title","value","onChange","disabled","cmdStatus","component-type"]),be(wd,{class:"flex-1",title:_.$t("control.sideFan"),value:P(t).auxiliaryFanSpeed,"onUpdate:value":I[13]||(I[13]=R=>P(t).auxiliaryFanSpeed=R),onChange:P(r),disabled:P(p),defaultOpenValue:100,cmdStatus:P(v),"component-type":P(na).AuxiliaryFan},{icon:Re(()=>[be(P(Mh))]),_:1},8,["title","value","onChange","disabled","cmdStatus","component-type"]),be(wd,{class:"flex-1",title:_.$t("control.Case"),"show-input":!0,value:P(t).chassisFanSpeed,"onUpdate:value":I[14]||(I[14]=R=>P(t).chassisFanSpeed=R),onChange:P(n),disabled:P(d),defaultOpenValue:100,cmdStatus:P(y),"component-type":P(na).ExhaustGrille},{icon:Re(()=>[be(P(Mh))]),_:1},8,["title","value","onChange","disabled","cmdStatus","component-type"]),be(wd,{class:"flex-1",title:_.$t("control.Lighting"),"show-input":!1,value:P(t).lightValue,"onUpdate:value":I[15]||(I[15]=R=>P(t).lightValue=R),onChange:P(o),disabled:P(f),defaultOpenValue:1,cmdStatus:P(b),"component-type":P(na).ChassisLight},{icon:Re(()=>[be(P(tV))]),_:1},8,["title","value","onChange","disabled","cmdStatus","component-type"])])])]),_:1}),be(al,{modelValue:P(S),"onUpdate:modelValue":I[16]||(I[16]=R=>En(S)?S.value=R:null),"confirm-title":_.$t("errorNotice"),"confirm-message":_.$t("aiDetection.lightOffConfirm"),"confirm-btn-txt":_.$t("close"),onConfirm:P(w),onCancel:P(C)},null,8,["modelValue","confirm-title","confirm-message","confirm-btn-txt","onConfirm","onCancel"])],64)}}}),zJe=rr(HJe,[["__scopeId","data-v-5c7e7505"]]),WJe={key:0,class:"pc-layout"},VJe={class:"left"},GJe={class:"right"},JJe={key:1,class:"mobile-layout"},ZJe="6.2.5",YJe=Je({__name:"main-view",setup(e){var f;const{isMobile:t}=gs(),n=di(),r=V(()=>t.value?"":"content"),i=V(()=>t.value?"main-view-mobile ":"main-view"),o=V(()=>jn()),s=se(!0),a=se(null);Ye(()=>t.value,(h,p)=>{Pe.log("isMobile 变化",{newValue:h,oldValue:p,isInitialMount:s.value,previousIsMobile:a.value}),!s.value&&a.value!==null&&h!==a.value&&(Pe.log("移动端/桌面端切换,刷新页面",{from:a.value?"移动端":"桌面端",to:h?"移动端":"桌面端"}),location.reload()),a.value=h}),ln(()=>{setTimeout(()=>{s.value=!1,a.value=t.value,Pe.log("初始化完成,当前 isMobile:",t.value)},100)});const c=navigator,l=c.userAgent,u=((f=c.userAgentData)==null?void 0:f.brands)??[],d=u.length?u.map(h=>`${h.brand} ${h.version}`).join(", "):l;return Pe.log("浏览器信息:",d),(h,p)=>(ne(),Te("div",{class:je(i.value)},[be(Kue),G("div",{class:"version-info"},"v"+Ue(ZJe)),G("div",{class:je(r.value)},[P(t)===!1?(ne(),Te("div",WJe,[G("div",VJe,[be(P(sHe)),be(P(XHe)),be(P(bH))]),G("div",GJe,[be(P(wH)),be(P(SH)),vn(be(P(PH),null,null,512),[[_r,P(n).canvasConnected]]),vn(be(P(IH),null,null,512),[[_r,!P(n).canvasConnected]]),o.value?Ke("",!0):(ne(),Ze(P(TH),{key:0}))])])):Ke("",!0),P(t)?(ne(),Te("div",JJe,[be(P(MJe)),be(P(zJe)),vn(be(P(PH),null,null,512),[[_r,P(n).canvasConnected]]),vn(be(P(IH),null,null,512),[[_r,!P(n).canvasConnected]]),be(P(bH)),be(P(SH)),be(P(wH)),o.value?Ke("",!0):(ne(),Ze(P(TH),{key:0}))])):Ke("",!0)],2)],2))}}),XJe=rr(YJe,[["__scopeId","data-v-9a145184"]]),QJe=typeof window<"u"&&window.location.protocol==="file:",KJe=QJe?Nie("./"):pW("./"),qJe=ooe({history:KJe,routes:[{path:"/",redirect:"/index"},{path:"/index",name:"index",component:XJe}]});Array.prototype.at||(Array.prototype.at=function(e){const t=this.length,n=e>=0?e:t+e;if(!(n<0||n>=t))return this[n]});Pe.log("=== 环境变量配置 ===");Pe.log("当前模式 (MODE):","mqtt");Pe.log("是否开发环境 (DEV):",!1);Pe.log("是否生产环境 (PROD):",!0);Pe.log("协议类型 (VITE_PROTOCOL_TYPE):",Ws.protocolType);Pe.log("使用RTC拉流 (VITE_USE_RTC):",Ws.useRTC);Pe.log("原始值 VITE_USE_RTC:","false");Pe.log("原始值 VITE_PROTOCOL_TYPE:","MQTT");Pe.log("==================");const $Je=new URLSearchParams(window.location.search),OH=$Je.get("print_ip"),S6=tW(coe),eZe=Bae(),tZe=Aae(eZe);tZe(!0);S6.use($re());S6.use(qJe);S6.use(ou);S6.mount("#app");if(OH){const e=Eee();e.curPrintHost=OH}});export default nZe();
\ No newline at end of file diff --git a/src/slic3r/GUI/PrinterWebViewHandler.cpp b/src/slic3r/GUI/PrinterWebViewHandler.cpp index 16d63795db..165d7c16dd 100644 --- a/src/slic3r/GUI/PrinterWebViewHandler.cpp +++ b/src/slic3r/GUI/PrinterWebViewHandler.cpp @@ -98,8 +98,6 @@ public: stop_upload = true; if (upload_thread.joinable()) upload_thread.join(); - if (sn_thread.joinable()) - sn_thread.join(); } void on_script_message(wxWebViewEvent &evt) override @@ -287,35 +285,21 @@ private: void handle_get_sn_request(const std::string& request_id, const std::string& method) { - if (sn_request_in_progress.exchange(true)) { - send_ipc_message("response", request_id, method, 1, "SN request already in progress"); - return; + // Panel always calls get_sn with a 10s IPC timeout. Answer immediately from + // dev_sn / cache — do not spawn a thread or perform HTTP (panel uses URL sn on miss). + std::string sn; + if (DynamicPrintConfig* config = get_active_printer_config()) { + const std::unique_ptr host(PrintHost::get_print_host(config)); + if (host) + sn = host->get_sn(); } - - if (sn_thread.joinable()) - sn_thread.join(); - - sn_thread = std::thread([this, request_id, method]() { - std::string sn; - - DynamicPrintConfig* config = get_active_printer_config(); - std::unique_ptr print_host(config == nullptr ? nullptr : PrintHost::get_print_host(config)); - if (print_host != nullptr) - sn = print_host->get_sn(); - - sn_request_in_progress = false; - json data = { - {"sn", sn} - }; - send_ipc_message("response", request_id, method, 0, "success", dump_json(data)); - }); + json data = { { "sn", sn } }; + send_ipc_message("response", request_id, method, 0, "success", dump_json(data)); } std::atomic upload_in_progress { false }; - std::atomic sn_request_in_progress { false }; std::atomic stop_upload { false }; std::thread upload_thread; - std::thread sn_thread; }; } // namespace diff --git a/src/slic3r/Utils/ElegooLink.cpp b/src/slic3r/Utils/ElegooLink.cpp index 90bbe65226..cf80d29dc8 100644 --- a/src/slic3r/Utils/ElegooLink.cpp +++ b/src/slic3r/Utils/ElegooLink.cpp @@ -1,6 +1,8 @@ #include "ElegooLink.hpp" #include +#include +#include #include #include #include @@ -60,6 +62,52 @@ namespace Slic3r { namespace { constexpr const char* ELEGOO_CC2_DEFAULT_TOKEN = "123456"; + // AppConfig section for CC2 serial numbers, keyed by normalized print_host (host/IP). + constexpr const char* ELEGOO_DEV_SN_SECTION = "dev_sn"; + + static std::mutex s_sn_cache_mutex; + static std::map s_sn_cache; + + std::string sn_cache_key(const std::string& host_ip, const std::string& token) + { + return host_ip + ":" + token; + } + + void cache_sn(const std::string& host_ip, const std::string& token, const std::string& sn) + { + if (host_ip.empty() || token.empty() || sn.empty()) + return; + std::lock_guard lock(s_sn_cache_mutex); + s_sn_cache[sn_cache_key(host_ip, token)] = sn; + } + + std::string lookup_sn(const std::string& host_ip, const std::string& token) + { + std::lock_guard lock(s_sn_cache_mutex); + auto it = s_sn_cache.find(sn_cache_key(host_ip, token)); + return it != s_sn_cache.end() ? it->second : std::string{}; + } + + std::string load_sn_from_config(const std::string& host_ip) + { + if (host_ip.empty()) + return {}; + AppConfig* app_cfg = GUI::get_app_config(); + if (app_cfg == nullptr) + return {}; + return app_cfg->get(ELEGOO_DEV_SN_SECTION, host_ip); + } + + void persist_sn(const std::string& host_ip, const std::string& token, const std::string& sn) + { + if (host_ip.empty() || sn.empty()) + return; + cache_sn(host_ip, token, sn); + AppConfig* app_cfg = GUI::get_app_config(); + if (app_cfg == nullptr) + return; + app_cfg->set_str(ELEGOO_DEV_SN_SECTION, host_ip, sn); + } enum class ElegooPrinterType { Other, @@ -193,6 +241,30 @@ namespace Slic3r { return out; } + std::string lookup_cc2_serial_impl(const std::string& printer_model, + const std::string& print_host, + const std::string& apikey) + { + if (classify_printer_model(printer_model) != ElegooPrinterType::CC2) + return {}; + + const std::string host_ip = get_host_from_url(print_host); + const std::string token = get_cc2_token(apikey); + std::string sn = lookup_sn(host_ip, token); + if (sn.empty()) + sn = load_sn_from_config(host_ip); + return sn; + } + + std::string lookup_cc2_serial(DynamicPrintConfig* config) + { + if (config == nullptr) + return {}; + return lookup_cc2_serial_impl(config->opt_string("printer_model"), + config->opt_string("print_host"), + config->opt_string("printhost_apikey")); + } + #ifdef WIN32 // Workaround for Windows 10/11 mDNS resolve issue, where two mDNS resolves in succession fail. std::string substitute_host(const std::string& orig_addr, std::string sub_addr) @@ -336,8 +408,30 @@ namespace Slic3r { std::string web_path = resources_dir() + "/plugins/elegoolink/web/lan_service_web/index.html"; std::replace(web_path.begin(), web_path.end(), '\\', '/'); web_path = "file://" + web_path; - web_path += "?access_code=" + get_cc2_token(config->opt_string("printhost_apikey")); - web_path += "&ip=" + get_host_from_url(host) + "&id=elegoo_123456"; + + const std::string token = get_cc2_token(config->opt_string("printhost_apikey")); + const std::string host_ip = get_host_from_url(host); + + // Pass sn= so the panel can subscribe to the correct MQTT topics. + std::string sn = lookup_cc2_serial(config); + if (sn.empty()) { + std::string error_msg; + auto http = Http::get("http://" + host_ip + "/system/info?X-Token=" + escape_string(token)); + http.timeout_connect(3).timeout_max(5); + http.header("X-Token", token); + http.header("Accept", "application/json"); + http.on_complete([&](std::string body, unsigned /*status*/) { + parse_cc2_response(body, error_msg, &sn); + }).perform_sync(); + if (!sn.empty()) + persist_sn(host_ip, token, sn); + } + + web_path += "?access_code=" + token; + web_path += "&ip=" + host_ip; + if (!sn.empty()) + web_path += "&sn=" + sn; + web_path += "&id=elegoo_123456"; const std::string lang = GUI::wxGetApp().current_language_code_safe().utf8_string(); if (!lang.empty()) @@ -376,33 +470,9 @@ namespace Slic3r { std::string ElegooLink::get_sn() const { - if (classify_printer_model(m_printerModel) != ElegooPrinterType::CC2) - return ""; - - const char* name = get_name(); - std::string sn; - const auto token = cc2_token(); - auto http = Http::get(make_cc2_info_url()); - http.timeout_connect(10) - .timeout_max(15); - http.header("X-Token", token); - http.header("Accept", "application/json"); - http.on_error([&](std::string body, std::string error, unsigned status) { - BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Error getting CC2 device info for SN: %2%, HTTP %3%, body: `%4%`") % name % error % status % body; - }) - .on_complete([&](std::string body, unsigned status) { - std::string error_message; - if (!parse_cc2_response(body, error_message, &sn)) { - BOOST_LOG_TRIVIAL(warning) << boost::format("%1%: Failed to parse CC2 SN response, HTTP %2%, reason: %3%") % name % status % error_message; - sn.clear(); - } - }) -#ifdef WIN32 - .ssl_revoke_best_effort(m_ssl_revoke_best_effort) -#endif // WIN32 - .perform_sync(); - - return sn; + // Panel IPC calls this on every load with a 10s timeout. Never block on HTTP + // here — URL sn= and dev_sn must be enough; HTTP is only for get_print_host_webui. + return lookup_cc2_serial_impl(m_printerModel, m_host, m_apikey); } bool ElegooLink::elegoo_test(wxString& msg) const{ @@ -481,6 +551,7 @@ namespace Slic3r { msg = format_error(body, error_message.empty() ? "CC2 device not detected" : error_message, status); return; } + persist_sn(get_host_from_url(m_host), token, serial_number); res = true; }) #ifdef WIN32 From f593d97f31ce3d0c53b8b28c7a446ec7c395b9c9 Mon Sep 17 00:00:00 2001 From: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com> Date: Thu, 28 May 2026 13:50:44 +0100 Subject: [PATCH 03/18] Disable slowdown for curled perimeters as a default setting. Expand tooltip with tuning recommendations. (#13870) --- src/libslic3r/PrintConfig.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 9617c9866f..e1e8252bdb 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1519,14 +1519,20 @@ void PrintConfigDef::init_fff_params() "For example, additional slowdown will be applied when printing overhangs on sharp corners like the " "front of the Benchy hull, reducing curling which compounds over multiple layers.\n\n" "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the " - "print speed slow enough that perimeter curling does not happen. If printing with a high external perimeter speed, " - "this parameter may introduce slight artifacts when slowing down due to the large variance in print speeds. " - "If you notice artifacts, ensure your pressure advance is tuned correctly.\n\n" + "print speed is slow enough that perimeter curling does not happen. \n" + "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, " + "due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n" + "Root cause of these artefacts is most likely PA tuning being slightly off, especially when combined " + "with a high PA smooth time.\n\n" + "Recommendations when enabling this option:\n" + "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n" + "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n" + "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n\n" "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is " "applied even if the overhanging perimeter is part of a bridge. For example, when the perimeters are 100% overhanging" ", with no wall supporting them from underneath, the 100% overhang speed will be applied."); def->mode = comAdvanced; - def->set_default_value(new ConfigOptionBool{ true }); + def->set_default_value(new ConfigOptionBool{ false }); def = this->add("overhang_1_4_speed", coFloatOrPercent); def->label = "10%"; From 400044534521b99b6e42fef1a4cf5646172b7c4d Mon Sep 17 00:00:00 2001 From: mrmees <38006194+mrmees@users.noreply.github.com> Date: Thu, 28 May 2026 09:09:15 -0500 Subject: [PATCH 04/18] Fix total_toolchanges placeholder being 0 without a wipe tower (#13895) * fix: populate total_toolchanges without a wipe tower total_toolchanges is documented as available while change_filament_gcode (and the wipe-tower toolchange flow) is evaluated, but it was sourced only from WipeTowerData::number_of_toolchanges, which stays -1 (clamped to 0) when no wipe tower is generated. Manual filament swaps and toolchanger/IDEX setups without a wipe tower therefore always saw total_toolchanges = 0 in custom G-code and output filenames, despite real tool changes occurring -- breaking the placeholder's documented contract. Add a tool-ordering fallback: when number_of_toolchanges < 0, count tool changes from the print's tool ordering (the transitions in the per-layer extruder sequence). Wipe-tower prints are untouched -- number_of_toolchanges >= 0 still wins -- so their reported count does not change. Limitation: sequential (by-object) prints without a wipe tower leave Print::tool_ordering() empty, so total_toolchanges stays 0 there (unchanged from before). Co-Authored-By: Claude Opus 4.7 (1M context) --- src/libslic3r/GCode.cpp | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index b6a2ddb665..359052bc96 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -2278,17 +2278,45 @@ namespace DoExport { ooze_prevention.enable = print.config().ooze_prevention.value && ! print.config().single_extruder_multi_material; } + // Count tool/filament changes across the print from the tool ordering. Used as a fallback when no + // wipe tower populated WipeTowerData::number_of_toolchanges (left at -1). Covers non-sequential + // prints without a wipe tower (manual swaps, toolchanger/IDEX). Note: sequential (by-object) prints + // leave print.tool_ordering() empty, so total_toolchanges stays 0 there (unchanged from before). + static int total_toolchanges_from_ordering(const ToolOrdering &tool_ordering) + { + int changes = 0; + int last = -1; + for (const LayerTools < : tool_ordering) + for (unsigned int extruder : lt.extruders) { + if (last >= 0 && int(extruder) != last) + ++ changes; + last = int(extruder); + } + return changes; + } + + // Total tool changes for the print, preferring the wipe-tower count and falling back to the tool + // ordering when no wipe tower populated it (number_of_toolchanges < 0). + static int resolve_total_toolchanges(const WipeTowerData &wipe_tower_data, const ToolOrdering &tool_ordering) + { + int changes = wipe_tower_data.number_of_toolchanges; + if (changes < 0) + changes = total_toolchanges_from_ordering(tool_ordering); + return std::max(0, changes); + } + // Fill in print_statistics and return formatted string containing filament statistics to be inserted into G-code comment section. static std::string update_print_stats_and_format_filament_stats( const bool has_wipe_tower, const WipeTowerData &wipe_tower_data, const std::vector &extruders, - PrintStatistics &print_statistics) + PrintStatistics &print_statistics, + const ToolOrdering &tool_ordering) { std::string filament_stats_string_out; print_statistics.clear(); - print_statistics.total_toolchanges = std::max(0, wipe_tower_data.number_of_toolchanges); + print_statistics.total_toolchanges = resolve_total_toolchanges(wipe_tower_data, tool_ordering); if (! extruders.empty()) { std::pair out_filament_used_mm ("; filament used [mm] = ", 0); std::pair out_filament_used_cm3("; filament used [cm3] = ", 0); @@ -2858,7 +2886,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato // For the start / end G-code to do the priming and final filament pull in case there is no wipe tower provided. this->placeholder_parser().set("has_wipe_tower", has_wipe_tower); this->placeholder_parser().set("has_single_extruder_multi_material_priming", wipe_tower_type == WipeTowerType::Type2 && has_wipe_tower && print.config().single_extruder_multi_material_priming); - this->placeholder_parser().set("total_toolchanges", std::max(0, print.wipe_tower_data().number_of_toolchanges)); // Check for negative toolchanges (single extruder mode) and set to 0 (no tool change). + this->placeholder_parser().set("total_toolchanges", DoExport::resolve_total_toolchanges(print.wipe_tower_data(), print.tool_ordering())); this->placeholder_parser().set("num_extruders", int(print.config().nozzle_diameter.values.size())); this->placeholder_parser().set("retract_length", new ConfigOptionFloats(print.config().retraction_length)); @@ -3473,7 +3501,9 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato has_wipe_tower, print.wipe_tower_data(), m_writer.extruders(), // Modifies - print.m_print_statistics)); + print.m_print_statistics, + // Const input (tool-change fallback for non-wipe-tower prints) + print.tool_ordering())); print.m_print_statistics.initial_tool = initial_extruder_id; if (!is_bbl_printers) { file.write_format("; total filament used [g] = %.2lf\n", From 3275bb709b76c426e67a962438c743045aa14d31 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Thu, 28 May 2026 22:27:45 +0800 Subject: [PATCH 05/18] Revert "Add indentation check to profile workflow (#13417)" --- .github/workflows/check_profiles.yml | 53 ++-------------------------- 1 file changed, 2 insertions(+), 51 deletions(-) diff --git a/.github/workflows/check_profiles.yml b/.github/workflows/check_profiles.yml index 806470b18b..84a396d7a3 100644 --- a/.github/workflows/check_profiles.yml +++ b/.github/workflows/check_profiles.yml @@ -34,46 +34,6 @@ jobs: python3 ./scripts/orca_extra_profile_check.py 2>&1 | tee ${{ runner.temp }}/extra_json_check.log exit ${PIPESTATUS[0]} - - name: Check profile indentation - id: indentation_check - continue-on-error: true - run: | - set +e - python3 - <<'PY' 2>&1 | tee ${{ runner.temp }}/indentation_check.log - import re - from pathlib import Path - import sys - - profiles_root = Path("resources/profiles") - invalid_files = [] - - for file_path in sorted(profiles_root.rglob("*.json")): - try: - for line_number, line in enumerate(file_path.read_text(encoding="utf-8").splitlines(), start=1): - if not line.strip(): - continue - leading_ws = re.match(r"^[ \t]*", line).group(0) - if " " in leading_ws: - invalid_files.append((file_path, line_number)) - break - except Exception as exc: - print(f"[ERROR] Unable to read {file_path}: {exc}") - invalid_files.append((file_path, 0)) - - if invalid_files: - for path, line in invalid_files: - if line > 0: - print(f"[ERROR] Space indentation found in {path}:{line}") - else: - print(f"[ERROR] Could not validate indentation in {path}") - print("Use tab indentation in profile JSON files (1 tab per indentation level).") - print("Tip: run python3 ./scripts/orca_filament_lib.py --fix --force to normalize formatting.") - sys.exit(1) - - print("All profile JSON files use tab-only indentation.") - PY - exit ${PIPESTATUS[0]} - # download - name: Download working-directory: ${{ github.workspace }} @@ -108,7 +68,7 @@ jobs: echo "${{ github.event.pull_request.number }}" > ${{ runner.temp }}/profile-check-results/pr_number.txt - name: Prepare comment artifact - if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.indentation_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }} + if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }} run: | { # Marker matched by check_profiles_comment.yml to delete prior comments. @@ -125,15 +85,6 @@ jobs: echo "" fi - if [ "${{ steps.indentation_check.outcome }}" = "failure" ]; then - echo "### Indentation Check Failed" - echo "" - echo '```' - head -c 30000 ${{ runner.temp }}/indentation_check.log || echo "No output captured" - echo '```' - echo "" - fi - if [ "${{ steps.validate_system.outcome }}" = "failure" ]; then echo "### System Profile Validation Failed" echo "" @@ -165,7 +116,7 @@ jobs: retention-days: 1 - name: Fail if any check failed - if: ${{ always() && (steps.extra_json_check.outcome == 'failure' || steps.indentation_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }} + if: ${{ always() && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }} run: | echo "One or more profile checks failed. See above for details." exit 1 From 67b9f076554b9a56dbd61922be10fb9b77be3775 Mon Sep 17 00:00:00 2001 From: mrmees <38006194+mrmees@users.noreply.github.com> Date: Thu, 28 May 2026 09:29:16 -0500 Subject: [PATCH 06/18] Fix built-in placeholders missing from custom G-code and output filenames (#13892) * fix: restore version placeholder in custom G-code PlaceholderParser sets "version" in its constructor, but Print::apply() calls clear_config() which wipes it. Unlike timestamp/user (restored during G-code export), version was never restored, so [version]/{version} threw "Variable does not exist" in custom G-code while working in output filenames. Re-set version after both clear_config() calls so it resolves everywhere. Co-Authored-By: Claude Opus 4.7 (1M context) * fix: resolve timestamp and user placeholders in File header G-code file_start_gcode is processed via print.placeholder_parser() directly, before the G-code parser integration copy that restores timestamp/user. As a result {timestamp}, {year}..{second} and {user} threw "Variable does not exist" in the File header G-code field while working in Machine start/end G-code. Inject fresh timestamp and user into the file_start_gcode config so they resolve, matching the other custom G-code fields. Co-Authored-By: Claude Opus 4.7 (1M context) * fix: expose initial_extruder and extruded_*_total placeholders in output filenames PrintStatistics exposed initial_tool (not its documented alias initial_extruder) and total_weight/extruded_volume (not the documented extruded_weight_total/extruded_volume_total). Filename formats using the missing names failed with "not a variable name". Add the missing aliases to PrintStatistics::config() and placeholders(). Fixes #12436 Fixes #10708 Co-Authored-By: Claude Opus 4.7 (1M context) --- src/libslic3r/GCode.cpp | 3 +++ src/libslic3r/Print.cpp | 7 +++++-- src/libslic3r/PrintApply.cpp | 4 ++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 359052bc96..867f324301 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -2549,6 +2549,9 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato std::string top_gcode_template = print.config().file_start_gcode.value; if (!top_gcode_template.empty()) { DynamicConfig top_config; + // file_start_gcode runs before the parser copy that normally restores these, so set them here. + PlaceholderParser::update_timestamp(top_config); + PlaceholderParser::update_user_name(top_config); top_config.set_key_value("print_time_sec", new ConfigOptionString(GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Print_Time_Sec_Placeholder))); top_config.set_key_value("used_filament_length", new ConfigOptionString(GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Used_Filament_Length_Placeholder))); std::string top_gcode = print.placeholder_parser().process(top_gcode_template, 0, &top_config); diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 9d8b1c4cf7..a335e29b82 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -3609,9 +3609,12 @@ DynamicConfig PrintStatistics::config() const config.set_key_value("total_cost", new ConfigOptionFloat(this->total_cost)); config.set_key_value("total_toolchanges", new ConfigOptionInt(this->total_toolchanges)); config.set_key_value("total_weight", new ConfigOptionFloat(this->total_weight)); + config.set_key_value("extruded_weight_total", new ConfigOptionFloat(this->total_weight)); + config.set_key_value("extruded_volume_total", new ConfigOptionFloat(this->total_extruded_volume)); config.set_key_value("total_wipe_tower_cost", new ConfigOptionFloat(this->total_wipe_tower_cost)); config.set_key_value("total_wipe_tower_filament", new ConfigOptionFloat(this->total_wipe_tower_filament)); config.set_key_value("initial_tool", new ConfigOptionInt(static_cast(this->initial_tool))); + config.set_key_value("initial_extruder", new ConfigOptionInt(static_cast(this->initial_tool))); return config; } @@ -3620,8 +3623,8 @@ DynamicConfig PrintStatistics::placeholders() DynamicConfig config; for (const std::string key : { "print_time", "normal_print_time", "silent_print_time", - "used_filament", "extruded_volume", "total_cost", "total_weight", - "initial_tool", "total_toolchanges", "total_wipe_tower_cost", "total_wipe_tower_filament"}) + "used_filament", "extruded_volume", "extruded_volume_total", "total_cost", "total_weight", "extruded_weight_total", + "initial_tool", "initial_extruder", "total_toolchanges", "total_wipe_tower_cost", "total_wipe_tower_filament"}) config.set_key_value(key, new ConfigOptionString(std::string("{") + key + "}")); return config; } diff --git a/src/libslic3r/PrintApply.cpp b/src/libslic3r/PrintApply.cpp index c9b500a85c..8f153c3037 100644 --- a/src/libslic3r/PrintApply.cpp +++ b/src/libslic3r/PrintApply.cpp @@ -1254,6 +1254,8 @@ Print::ApplyStatus Print::apply(const Model &model, DynamicPrintConfig new_full_ BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(" %1%: found full_config_diff changed.")%__LINE__; update_apply_status(this->invalidate_step(psGCodeExport)); m_placeholder_parser.clear_config(); + // clear_config() wiped the constructor-set "version"; restore it for custom G-code. + m_placeholder_parser.set("version", std::string(SoftFever_VERSION)); // Set the profile aliases for the PrintBase::output_filename() m_placeholder_parser.set("print_preset", new_full_config.option("print_settings_id")->clone()); m_placeholder_parser.set("filament_preset", new_full_config.option("filament_settings_id")->clone()); @@ -1630,6 +1632,8 @@ Print::ApplyStatus Print::apply(const Model &model, DynamicPrintConfig new_full_ BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(" %1%: full_config_diff previous empty, need to apply now.")%__LINE__; m_placeholder_parser.clear_config(); + // clear_config() wiped the constructor-set "version"; restore it for custom G-code. + m_placeholder_parser.set("version", std::string(SoftFever_VERSION)); // Set the profile aliases for the PrintBase::output_filename() m_placeholder_parser.set("print_preset", new_full_config.option("print_settings_id")->clone()); m_placeholder_parser.set("filament_preset", new_full_config.option("filament_settings_id")->clone()); From 7999bbd819f87c350d40c00c26ae808bd1ac6dc9 Mon Sep 17 00:00:00 2001 From: Mitchell Mashburn <128167557+re3Dev@users.noreply.github.com> Date: Thu, 28 May 2026 11:25:47 -0500 Subject: [PATCH 07/18] Fix naming of re:3D cover pictures to match printer model. (#13907) * Fix naming of cover pictures to match printer model. * Rename buildplate textures. --- .../profiles/re3D/machine/re3D GigabotX 2 XLT.json | 2 +- .../profiles/re3D/machine/re3D GigabotX 2.json | 2 +- .../profiles/re3D/machine/re3D TerabotX 2.json | 2 +- ...g => re3D GigabotX 2 XLT_buildplate_texture.svg} | 0 ... XLT_cover.png => re3D GigabotX 2 XLT_cover.png} | Bin ...e.svg => re3D GigabotX 2_buildplate_texture.svg} | 0 ...gabot X2_cover.png => re3D GigabotX 2_cover.png} | Bin ...e.svg => re3D TerabotX 2_buildplate_texture.svg} | 0 ...rabot X2_cover.png => re3D TerabotX 2_cover.png} | Bin 9 files changed, 3 insertions(+), 3 deletions(-) rename resources/profiles/re3D/{re3D Gigabot X2 XLT_buildplate_texture.svg => re3D GigabotX 2 XLT_buildplate_texture.svg} (100%) rename resources/profiles/re3D/{re3D Gigabot X2 XLT_cover.png => re3D GigabotX 2 XLT_cover.png} (100%) rename resources/profiles/re3D/{re3D Gigabot X2_buildplate_texture.svg => re3D GigabotX 2_buildplate_texture.svg} (100%) rename resources/profiles/re3D/{re3D Gigabot X2_cover.png => re3D GigabotX 2_cover.png} (100%) rename resources/profiles/re3D/{re3D Terabot X2_buildplate_texture.svg => re3D TerabotX 2_buildplate_texture.svg} (100%) rename resources/profiles/re3D/{re3D Terabot X2_cover.png => re3D TerabotX 2_cover.png} (100%) diff --git a/resources/profiles/re3D/machine/re3D GigabotX 2 XLT.json b/resources/profiles/re3D/machine/re3D GigabotX 2 XLT.json index bfd396ec3c..09a2702f3a 100644 --- a/resources/profiles/re3D/machine/re3D GigabotX 2 XLT.json +++ b/resources/profiles/re3D/machine/re3D GigabotX 2 XLT.json @@ -7,7 +7,7 @@ "machine_tech": "FGF", "family": "re3D", "bed_model": "", - "bed_texture": "re3D Gigabot X2 XLT_buildplate_texture.svg", + "bed_texture": "re3D GigabotX 2 XLT_buildplate_texture.svg", "hotend_model": "GBX-HOTEND.stl", "default_materials": "re3D Greengate rPETG;re3D rPP;" } diff --git a/resources/profiles/re3D/machine/re3D GigabotX 2.json b/resources/profiles/re3D/machine/re3D GigabotX 2.json index 71da64c8c3..cc1470ee05 100644 --- a/resources/profiles/re3D/machine/re3D GigabotX 2.json +++ b/resources/profiles/re3D/machine/re3D GigabotX 2.json @@ -7,7 +7,7 @@ "machine_tech": "FGF", "family": "re3D", "bed_model": "", - "bed_texture": "re3D Gigabot X2_buildplate_texture.svg", + "bed_texture": "re3D GigabotX 2_buildplate_texture.svg", "hotend_model": "GBX-HOTEND.stl", "default_materials": "re3D Greengate rPETG;re3D rPP;" } diff --git a/resources/profiles/re3D/machine/re3D TerabotX 2.json b/resources/profiles/re3D/machine/re3D TerabotX 2.json index 24624971ec..9d8d0b2cb4 100644 --- a/resources/profiles/re3D/machine/re3D TerabotX 2.json +++ b/resources/profiles/re3D/machine/re3D TerabotX 2.json @@ -7,7 +7,7 @@ "machine_tech": "FGF", "family": "re3D", "bed_model": "", - "bed_texture": "re3D Terabot X2_buildplate_texture.svg", + "bed_texture": "re3D TerabotX 2_buildplate_texture.svg", "hotend_model": "GBX-HOTEND.stl", "default_materials": "re3D Greengate rPETG;re3D rPP;" } diff --git a/resources/profiles/re3D/re3D Gigabot X2 XLT_buildplate_texture.svg b/resources/profiles/re3D/re3D GigabotX 2 XLT_buildplate_texture.svg similarity index 100% rename from resources/profiles/re3D/re3D Gigabot X2 XLT_buildplate_texture.svg rename to resources/profiles/re3D/re3D GigabotX 2 XLT_buildplate_texture.svg diff --git a/resources/profiles/re3D/re3D Gigabot X2 XLT_cover.png b/resources/profiles/re3D/re3D GigabotX 2 XLT_cover.png similarity index 100% rename from resources/profiles/re3D/re3D Gigabot X2 XLT_cover.png rename to resources/profiles/re3D/re3D GigabotX 2 XLT_cover.png diff --git a/resources/profiles/re3D/re3D Gigabot X2_buildplate_texture.svg b/resources/profiles/re3D/re3D GigabotX 2_buildplate_texture.svg similarity index 100% rename from resources/profiles/re3D/re3D Gigabot X2_buildplate_texture.svg rename to resources/profiles/re3D/re3D GigabotX 2_buildplate_texture.svg diff --git a/resources/profiles/re3D/re3D Gigabot X2_cover.png b/resources/profiles/re3D/re3D GigabotX 2_cover.png similarity index 100% rename from resources/profiles/re3D/re3D Gigabot X2_cover.png rename to resources/profiles/re3D/re3D GigabotX 2_cover.png diff --git a/resources/profiles/re3D/re3D Terabot X2_buildplate_texture.svg b/resources/profiles/re3D/re3D TerabotX 2_buildplate_texture.svg similarity index 100% rename from resources/profiles/re3D/re3D Terabot X2_buildplate_texture.svg rename to resources/profiles/re3D/re3D TerabotX 2_buildplate_texture.svg diff --git a/resources/profiles/re3D/re3D Terabot X2_cover.png b/resources/profiles/re3D/re3D TerabotX 2_cover.png similarity index 100% rename from resources/profiles/re3D/re3D Terabot X2_cover.png rename to resources/profiles/re3D/re3D TerabotX 2_cover.png From d279e241f6288b9ab79d86d476e838093c06b72e Mon Sep 17 00:00:00 2001 From: TheLegendTubaGuy <95944177+thelegendtubaguy@users.noreply.github.com> Date: Thu, 28 May 2026 09:26:34 -0700 Subject: [PATCH 08/18] Fix Kobra 3 Max bed exclusion zones (#13879) --- .../Anycubic Kobra 3 Max 0.4 nozzle.json | 27 +++++++++++++++---- .../Anycubic Kobra 3 Max 0.6 nozzle.json | 27 +++++++++++++++---- .../Anycubic Kobra 3 Max 0.8 nozzle.json | 27 +++++++++++++++---- 3 files changed, 66 insertions(+), 15 deletions(-) diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic Kobra 3 Max 0.4 nozzle.json index 56daf84d1b..8a776dfcfb 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra 3 Max 0.4 nozzle.json @@ -33,10 +33,10 @@ "disable_m73": "0", "gcode_flavor": "klipper", "printable_area": [ - "3x0", - "423x0", - "423x420", - "3x420" + "0x0", + "426x0", + "426x420", + "0x420" ], "printable_height": "501", "thumbnails": "230x110/PNG", @@ -48,7 +48,24 @@ "bbl_use_printhost": "0", "bed_custom_model": "", "bed_custom_texture": "", - "bed_exclude_area": [], + "bed_exclude_area": [ + "0x0", + "3x0", + "3x420", + "0x420", + "0x0", + "423x0", + "423x0", + "423x0", + "423x0", + "426x0", + "426x420", + "423x420", + "423x0", + "0x0", + "0x0", + "0x0" + ], "bed_mesh_max": "0,0", "bed_mesh_min": "0,0", "bed_mesh_probe_distance": "0,0", diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic Kobra 3 Max 0.6 nozzle.json index 9133572645..8346ccf3e7 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra 3 Max 0.6 nozzle.json @@ -23,10 +23,10 @@ "disable_m73": "0", "gcode_flavor": "klipper", "printable_area": [ - "3x0", - "423x0", - "423x420", - "3x420" + "0x0", + "426x0", + "426x420", + "0x420" ], "printable_height": "501", "thumbnails": "230x110/PNG", @@ -38,7 +38,24 @@ "bbl_use_printhost": "0", "bed_custom_model": "", "bed_custom_texture": "", - "bed_exclude_area": [], + "bed_exclude_area": [ + "0x0", + "3x0", + "3x420", + "0x420", + "0x0", + "423x0", + "423x0", + "423x0", + "423x0", + "426x0", + "426x420", + "423x420", + "423x0", + "0x0", + "0x0", + "0x0" + ], "bed_mesh_max": "0,0", "bed_mesh_min": "0,0", "bed_mesh_probe_distance": "0,0", diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic Kobra 3 Max 0.8 nozzle.json index f0b0fc9cde..97aef7dcac 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra 3 Max 0.8 nozzle.json @@ -23,10 +23,10 @@ "disable_m73": "0", "gcode_flavor": "klipper", "printable_area": [ - "3x0", - "423x0", - "423x420", - "3x420" + "0x0", + "426x0", + "426x420", + "0x420" ], "printable_height": "501", "thumbnails": "230x110/PNG", @@ -38,7 +38,24 @@ "bbl_use_printhost": "0", "bed_custom_model": "", "bed_custom_texture": "", - "bed_exclude_area": [], + "bed_exclude_area": [ + "0x0", + "3x0", + "3x420", + "0x420", + "0x0", + "423x0", + "423x0", + "423x0", + "423x0", + "426x0", + "426x420", + "423x420", + "423x0", + "0x0", + "0x0", + "0x0" + ], "bed_mesh_max": "0,0", "bed_mesh_min": "0,0", "bed_mesh_probe_distance": "0,0", From e514b60ea6e2909502f4ff9ed706e4e1fb45c29b Mon Sep 17 00:00:00 2001 From: Ian Bassi Date: Thu, 28 May 2026 17:15:21 -0300 Subject: [PATCH 09/18] Slow down for curled perimeters Desc fix (#13918) --- src/libslic3r/PrintConfig.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index e1e8252bdb..cc1fb1a7f8 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1515,22 +1515,22 @@ void PrintConfigDef::init_fff_params() def->label = L("Slow down for curled perimeters"); def->category = L("Speed"); // xgettext:no-c-format, no-boost-format - def->tooltip = L("Enable this option to slow down printing in areas where perimeters may have curled upwards. " + def->tooltip = L("Enable this option to slow down printing in areas where perimeters may have curled upwards.\n" "For example, additional slowdown will be applied when printing overhangs on sharp corners like the " "front of the Benchy hull, reducing curling which compounds over multiple layers.\n\n" "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the " "print speed is slow enough that perimeter curling does not happen. \n" "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, " "due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n" - "Root cause of these artefacts is most likely PA tuning being slightly off, especially when combined " + "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined " "with a high PA smooth time.\n\n" "Recommendations when enabling this option:\n" "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n" "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n" "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n\n" "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is " - "applied even if the overhanging perimeter is part of a bridge. For example, when the perimeters are 100% overhanging" - ", with no wall supporting them from underneath, the 100% overhang speed will be applied."); + "applied even if the overhanging perimeter is part of a bridge.\n" + "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."); def->mode = comAdvanced; def->set_default_value(new ConfigOptionBool{ false }); From d3b110ebf6e8dfd212d56d5219ca01b220c6f71a Mon Sep 17 00:00:00 2001 From: TheLegendTubaGuy <95944177+thelegendtubaguy@users.noreply.github.com> Date: Thu, 28 May 2026 16:25:09 -0700 Subject: [PATCH 10/18] Remove hardcoded Qidi Max 4 input shaper (#13864) --- resources/profiles/Qidi/machine/Qidi X-Max 4 0.4 nozzle.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/profiles/Qidi/machine/Qidi X-Max 4 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Max 4 0.4 nozzle.json index 353a3a0674..61b143aa42 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max 4 0.4 nozzle.json @@ -57,7 +57,7 @@ "machine_max_speed_y": [ "800" ], - "machine_start_gcode": ";===== PRINT_PHASE_INIT =====\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\nSET_PRINT_MAIN_STATUS MAIN_STATUS=print_start\nM220 S100\nM221 S100\nSET_INPUT_SHAPER SHAPER_TYPE_X=mzv\nSET_INPUT_SHAPER SHAPER_TYPE_Y=mzv\nDISABLE_ALL_SENSOR\nM1002 R1\nM107\nCLEAR_PAUSE\nM140 S[bed_temperature_initial_layer_single]\nM141 S[chamber_temperature]\nG29.0\nSET_PRINT_SUB_STATUS SUB_STATUS=tool_head_reset\nG28\n\n;===== BOX_PREPAR =====\nSET_PRINT_SUB_STATUS SUB_STATUS=change_filament\nBOX_PRINT_START EXTRUDER=[initial_no_support_extruder] HOTENDTEMP={nozzle_temperature_range_high[initial_tool]}\nM400\nEXTRUSION_AND_FLUSH HOTEND=[nozzle_temperature_initial_layer]\n\n;===== CLEAR_NOZZLE =====\nSET_PRINT_SUB_STATUS SUB_STATUS=flush_filament\nG1 Z20 F480\nMOVE_TO_TRASH\nG1 Y403.5 F2000\n{if chamber_temperature[0] == 0}\nM106 P3 S[during_print_exhaust_fan_speed]\n{else}\nM106 P3 S0\n{endif}\nM1004\nM106 S0\nM109 S[nozzle_temperature_initial_layer]\nG92 E0\nM83\nG1 E5 F80\nG1 E250 F300\nM400\nM106 S255\nG1 E-3 F1000\nM104 S140\nSET_PRINT_SUB_STATUS SUB_STATUS=clear_nozzle\nM109.1 S{nozzle_temperature_initial_layer[0]-30}\nM204 S10000\nG1 Y403 F2000\nG1 X163 F8000\nG1 X145 F5000\nG1 X163 F8000\nG1 X145 F5000\nG1 X175 F6000\nG1 X163\nG1 X175\nG1 X163\nG1 X175\nG1 X163\nG1 X180 F10000\nG1 Y395 F6000\nG1 X188\nG1 Z-0.2 F480\nM106 S255\nM109.1 S150\nG91\nG1 X15 F200\nG1 Y2\nG1 X-15\nG1 Y-2\nG1 X15\nG90\nG2 I0.5 J0.5 F480\nG2 I0.5 J0.5\nG2 I0.5 J0.5\nG1 Z10\nG1 Y383 F12000\nG1 X116\nG1 Y403\nG1 X163 F8000\nG1 X145 F5000\nG1 X163 F8000\nG1 X145 F5000\nG1 X175 F6000\nG1 X163\nG1 X175\nG1 X163\nG1 X175\nG1 X163\nG1 X180 F10000\nG1 X195 Y195\nM106 S0\nSET_PRINT_SUB_STATUS SUB_STATUS=wait_bed_temp\nM190 S[bed_temperature_initial_layer_single]\nSET_PRINT_SUB_STATUS SUB_STATUS=wait_chamber_temp\nM191 S[chamber_temperature]\nG1 Y0 F15000\nG1 X15\nG1 X3 F5000\nG4 P1000\nG1 X4 F1000\nG1 X3 F5000\nG4 P1000\nG1 E-4 F1800\nG1 X15 F3000\nG1 X20 Y20 F15000\nSET_PRINT_SUB_STATUS SUB_STATUS=z_tilt_adjust\nZ_TILT_ADJUST\nSET_PRINT_SUB_STATUS SUB_STATUS=auto_bed_adjust\nG29\nM1002 A1\nG1 X195 Y195 Z10 F20000\nG92_ Z{10 - ((nozzle_temperature_initial_layer[initial_tool] - 130) / 14 - 5.0) / 100}\nG0 Y1\nM109 S[nozzle_temperature_initial_layer]\nENABLE_ALL_SENSOR\n\n;===== PRINT_START =====\n; LAYER_HEIGHT: 0.2\nT[initial_tool]\nM140 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nM141 S[chamber_temperature]\nG4 P3000\nprobe samples=1\nG91\nG0 Z0.6 F480\nG90\nG1 X175 Y1 F20000\nG1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2/2.4053*60}\nG1 X215 E20 F{filament_max_volumetric_speed[initial_no_support_extruder]/2/2.4053*60}\nG1 Z1 F480\nSET_PRINT_MAIN_STATUS MAIN_STATUS=printing", + "machine_start_gcode": ";===== PRINT_PHASE_INIT =====\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\nSET_PRINT_MAIN_STATUS MAIN_STATUS=print_start\nM220 S100\nM221 S100\nDISABLE_ALL_SENSOR\nM1002 R1\nM107\nCLEAR_PAUSE\nM140 S[bed_temperature_initial_layer_single]\nM141 S[chamber_temperature]\nG29.0\nSET_PRINT_SUB_STATUS SUB_STATUS=tool_head_reset\nG28\n\n;===== BOX_PREPAR =====\nSET_PRINT_SUB_STATUS SUB_STATUS=change_filament\nBOX_PRINT_START EXTRUDER=[initial_no_support_extruder] HOTENDTEMP={nozzle_temperature_range_high[initial_tool]}\nM400\nEXTRUSION_AND_FLUSH HOTEND=[nozzle_temperature_initial_layer]\n\n;===== CLEAR_NOZZLE =====\nSET_PRINT_SUB_STATUS SUB_STATUS=flush_filament\nG1 Z20 F480\nMOVE_TO_TRASH\nG1 Y403.5 F2000\n{if chamber_temperature[0] == 0}\nM106 P3 S[during_print_exhaust_fan_speed]\n{else}\nM106 P3 S0\n{endif}\nM1004\nM106 S0\nM109 S[nozzle_temperature_initial_layer]\nG92 E0\nM83\nG1 E5 F80\nG1 E250 F300\nM400\nM106 S255\nG1 E-3 F1000\nM104 S140\nSET_PRINT_SUB_STATUS SUB_STATUS=clear_nozzle\nM109.1 S{nozzle_temperature_initial_layer[0]-30}\nM204 S10000\nG1 Y403 F2000\nG1 X163 F8000\nG1 X145 F5000\nG1 X163 F8000\nG1 X145 F5000\nG1 X175 F6000\nG1 X163\nG1 X175\nG1 X163\nG1 X175\nG1 X163\nG1 X180 F10000\nG1 Y395 F6000\nG1 X188\nG1 Z-0.2 F480\nM106 S255\nM109.1 S150\nG91\nG1 X15 F200\nG1 Y2\nG1 X-15\nG1 Y-2\nG1 X15\nG90\nG2 I0.5 J0.5 F480\nG2 I0.5 J0.5\nG2 I0.5 J0.5\nG1 Z10\nG1 Y383 F12000\nG1 X116\nG1 Y403\nG1 X163 F8000\nG1 X145 F5000\nG1 X163 F8000\nG1 X145 F5000\nG1 X175 F6000\nG1 X163\nG1 X175\nG1 X163\nG1 X175\nG1 X163\nG1 X180 F10000\nG1 X195 Y195\nM106 S0\nSET_PRINT_SUB_STATUS SUB_STATUS=wait_bed_temp\nM190 S[bed_temperature_initial_layer_single]\nSET_PRINT_SUB_STATUS SUB_STATUS=wait_chamber_temp\nM191 S[chamber_temperature]\nG1 Y0 F15000\nG1 X15\nG1 X3 F5000\nG4 P1000\nG1 X4 F1000\nG1 X3 F5000\nG4 P1000\nG1 E-4 F1800\nG1 X15 F3000\nG1 X20 Y20 F15000\nSET_PRINT_SUB_STATUS SUB_STATUS=z_tilt_adjust\nZ_TILT_ADJUST\nSET_PRINT_SUB_STATUS SUB_STATUS=auto_bed_adjust\nG29\nM1002 A1\nG1 X195 Y195 Z10 F20000\nG92_ Z{10 - ((nozzle_temperature_initial_layer[initial_tool] - 130) / 14 - 5.0) / 100}\nG0 Y1\nM109 S[nozzle_temperature_initial_layer]\nENABLE_ALL_SENSOR\n\n;===== PRINT_START =====\n; LAYER_HEIGHT: 0.2\nT[initial_tool]\nM140 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nM141 S[chamber_temperature]\nG4 P3000\nprobe samples=1\nG91\nG0 Z0.6 F480\nG90\nG1 X175 Y1 F20000\nG1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2/2.4053*60}\nG1 X215 E20 F{filament_max_volumetric_speed[initial_no_support_extruder]/2/2.4053*60}\nG1 Z1 F480\nSET_PRINT_MAIN_STATUS MAIN_STATUS=printing", "nozzle_diameter": [ "0.4" ], From 3db37d004ad8023f1a55ad4940685bd6724c911c Mon Sep 17 00:00:00 2001 From: Ian Bassi Date: Thu, 28 May 2026 23:54:26 -0300 Subject: [PATCH 11/18] Fix + Support 'Default' filament option (index 0) (#13887) * Support 'Default' filament option (index 0) Treat filament index 0 as the new "Default" (use active object/part filament) instead of using 1. Update config defaults and tooltips for wall/sparse/solid infill filament options (min/default -> 0, tooltip explains "Default"). Adjust normalization and propagation logic to respect explicit feature overrides and only apply base extruder when feature values are zero; only copy sparse->solid infill when sparse > 0. Introduce FeatureFilamentOverrideMask and clamp_feature_filament_to_valid to resolve and clamp feature filaments. Update UI lists and selection behavior to expose a "Default" entry and handle zero-based indices in PartPlate and Plater. * enable_filament_for_features option Co-Authored-By: LixNix <105106115+lixnix@users.noreply.github.com> * \n * Allow wipe_tower_filament to equal nozzle count Relax the assertion in Print::extruders to permit wipe_tower_filament == config().nozzle_diameter.size(). The configuration value is 1-based and the code subtracts 1 when pushing the extruder index, so equality should be valid and selecting the last nozzle should not trigger an assertion. * Revert "Allow wipe_tower_filament to equal nozzle count" This reverts commit 2c976574327a8bcdc74a1b296bf1aaff7752a94e. * Revert "enable_filament_for_features option" This reverts commit 01c13baeddb8e26793f752deab788ee4d086975b. * Migrate legacy feature filament defaults Add migration logic to convert legacy feature filament selections from 1 to 0 for older 3mf files. Introduces a local migrate_legacy_feature_filament_defaults lambda in src/OrcaSlicer.cpp and src/slic3r/GUI/Plater.cpp that scans keys (wall_filament, sparse_infill_filament, solid_infill_filament, support_filament, support_interface_filament) on configs/objects/volumes, updates values, counts conversions and logs the result. Also adds a Semver check for "2.4.0-dev" in OrcaSlicer to trigger the migration for files older than that version. This preserves expected default filament selections when loading older project files. * Update OrcaSlicer.cpp * Extract migration helper to ConfigMigrations Centralize legacy feature-filament default migration by moving the duplicated lambda into ConfigMigrations::migrate_legacy_feature_filament_defaults (src/libslic3r/Config.cpp) and declaring it in Config.hpp. Update OrcaSlicer.cpp and slic3r/GUI/Plater.cpp to call the new function instead of inline lambdas. The helper converts specific feature filament keys (wall_filament, sparse_infill_filament, solid_infill_filament, support_filament, support_interface_filament) from int 1 to 0 and returns the count of conversions to avoid duplicated migration logic. * Remove DynamicFilamentList1Based and consolidate lists Delete the specialized DynamicFilamentList1Based struct and its global instance. Update Choice registrations to use the single dynamic_filament_list for wall, sparse_infill and solid_infill filaments, and remove the extra update call for the removed instance. This consolidates filament choice handling and removes duplicated logic in Plater.cpp. * move it * fix objects * Update Config.hpp * Update profiles --- ...ghDetail @Anycubic Kobra 3 0.4 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.4 nozzle.json | 6 +- ...Standard @Anycubic Kobra X 0.4 nozzle.json | 6 +- ...m Detail @Anycubic Kobra 3 0.2 nozzle.json | 6 +- ...tail @Anycubic Kobra 2 Neo 0.4 nozzle.json | 6 +- ...m Detail @Anycubic Kobra 3 0.4 nozzle.json | 6 +- ...Detail @Anycubic Kobra Neo 0.4 nozzle.json | 6 +- ... Quality @Anycubic Kobra X 0.4 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.4 nozzle.json | 6 +- ...Standard @Anycubic Kobra X 0.4 nozzle.json | 6 +- ... Quality @Anycubic Kobra X 0.4 nozzle.json | 6 +- ...imal @Anycubic Kobra 2 Pro 0.4 nozzle.json | 6 +- ... Optimal @Anycubic Kobra 3 0.4 nozzle.json | 6 +- ...dard @Anycubic Kobra 2 Neo 0.4 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.4 nozzle.json | 6 +- ...andard @Anycubic Kobra Neo 0.4 nozzle.json | 6 +- ...Standard @Anycubic Kobra X 0.4 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.6 nozzle.json | 6 +- ... Quality @Anycubic Kobra X 0.4 nozzle.json | 6 +- ...dard @Anycubic Kobra 2 Max 0.4 nozzle.json | 6 +- ...dard @Anycubic Kobra 2 Neo 0.4 nozzle.json | 6 +- ...ard @Anycubic Kobra 2 Plus 0.4 nozzle.json | 6 +- ...dard @Anycubic Kobra 2 Pro 0.4 nozzle.json | 6 +- ...Standard @Anycubic Kobra 3 0.4 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.4 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.8 nozzle.json | 6 +- ...andard @Anycubic Kobra Neo 0.4 nozzle.json | 6 +- ...tandard @Anycubic Kobra S1 0.4 nozzle.json | 6 +- ...Standard @Anycubic Kobra X 0.4 nozzle.json | 6 +- ...mm Draft @Anycubic Kobra 3 0.4 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.4 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.6 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.8 nozzle.json | 6 +- ...Standard @Anycubic Kobra X 0.4 nozzle.json | 6 +- ...raft @Anycubic Kobra 2 Pro 0.4 nozzle.json | 6 +- ...dard @Anycubic Kobra 2 Neo 0.4 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.4 nozzle.json | 6 +- ...andard @Anycubic Kobra Neo 0.4 nozzle.json | 6 +- ...Standard @Anycubic Kobra X 0.4 nozzle.json | 6 +- ...perDraft @Anycubic Kobra 3 0.4 nozzle.json | 6 +- ...Standard @Anycubic Kobra 3 0.6 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.6 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.8 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.6 nozzle.json | 6 +- ...Standard @Anycubic Kobra 3 0.8 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.8 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.6 nozzle.json | 6 +- ...dard @Anycubic Kobra 3 Max 0.8 nozzle.json | 6 +- ...tra Fine @Artillery M1 Pro 0.4 nozzle.json | 6 +- ... Quality @Artillery M1 Pro 0.2 nozzle.json | 6 +- ... Quality @Artillery M1 Pro 0.4 nozzle.json | 6 +- ...2mm Fine @Artillery M1 Pro 0.4 nozzle.json | 6 +- ... Quality @Artillery M1 Pro 0.4 nozzle.json | 6 +- ... Quality @Artillery M1 Pro 0.4 nozzle.json | 6 +- ... Optimal @Artillery M1 Pro 0.4 nozzle.json | 6 +- ...Standard @Artillery M1 Pro 0.4 nozzle.json | 6 +- ...Standard @Artillery X3Plus 0.4 nozzle.json | 6 +- ... Standard @Artillery X3Pro 0.4 nozzle.json | 6 +- ...Standard @Artillery X4Plus 0.4 nozzle.json | 6 +- ... Standard @Artillery X4Pro 0.4 nozzle.json | 6 +- ...Strength @Artillery M1 Pro 0.4 nozzle.json | 6 +- ...mm Draft @Artillery M1 Pro 0.4 nozzle.json | 6 +- ...mm Draft @Artillery M1 Pro 0.6 nozzle.json | 6 +- ...mm Draft @Artillery M1 Pro 0.8 nozzle.json | 6 +- ...ra Draft @Artillery M1 Pro 0.4 nozzle.json | 6 +- .../fdm_process_colidodiy40_common.json | 6 +- .../process/fdm_process_colidox16_common.json | 6 +- .../process/fdm_process_comgrow_common.json | 6 +- ...rd @Creality Ender-5 Max 0.4mm nozzle.json | 6 +- ...20mm Standard @Creality K2 0.4 nozzle.json | 6 +- ...st @Creality Ender-5 Max 0.4mm nozzle.json | 6 +- ...30mm Standard @Creality K2 0.6 nozzle.json | 6 +- ...40mm Standard @Creality K2 0.8 nozzle.json | 6 +- .../process/process template @base.json | 6 +- .../0.20mm Standard @Thinker X400.json | 6 +- .../fdm_process_eryone_ER20_common.json | 4 +- ...m Standard @Flashforge G3U 0.4 Nozzle.json | 6 +- .../Ghost7/fdm_process_common_Ghost7.json | 6 +- .../process/S1/fdm_process_common_S1.json | 6 +- .../process/fdm_process_common.json | 6 +- .../process/fdm_process_common.json | 6 +- .../EX+APS/fdm_process_common_EX+APS.json | 6 +- .../process/EX/fdm_process_common_EX.json | 6 +- .../process/HSN/fdm_process_common_HSN.json | 6 +- .../InfiMech/process/fdm_process_common.json | 6 +- .../Kingroon/process/fdm_process_common.json | 6 +- ...0mm Standard @Phrozen Arco 0.4 nozzle.json | 6 +- .../Prusa/process/process_common_mk4s.json | 6 +- src/OrcaSlicer.cpp | 15 +++- src/libslic3r/Config.hpp | 28 ++++++ src/libslic3r/PresetBundle.cpp | 10 +-- src/libslic3r/PrintConfig.cpp | 44 ++++++---- src/libslic3r/PrintObject.cpp | 87 +++++++++++++------ src/slic3r/GUI/PartPlate.cpp | 36 ++++---- src/slic3r/GUI/Plater.cpp | 73 +++++----------- 95 files changed, 433 insertions(+), 386 deletions(-) diff --git a/resources/profiles/Anycubic/process/0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle.json index c97b439728..e134a64791 100644 --- a/resources/profiles/Anycubic/process/0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "10000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "450", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.08mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.08mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json index d04547062a..074fd98f18 100644 --- a/resources/profiles/Anycubic/process/0.08mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.08mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -201,10 +201,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "150", @@ -271,7 +271,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.08mm Standard @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.08mm Standard @Anycubic Kobra X 0.4 nozzle.json index edc7af417f..2fcb7a8b22 100644 --- a/resources/profiles/Anycubic/process/0.08mm Standard @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.08mm Standard @Anycubic Kobra X 0.4 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "sparse_infill_speed": "100", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json b/resources/profiles/Anycubic/process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json index 63d2d1f096..f133804659 100644 --- a/resources/profiles/Anycubic/process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json +++ b/resources/profiles/Anycubic/process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.22", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "150", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "4", diff --git a/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 2 Neo 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 2 Neo 0.4 nozzle.json index bbc320fc43..245347e3fd 100644 --- a/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 2 Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 2 Neo 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "150", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json index 6ed0df7676..15a0bf12b1 100644 --- a/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "30%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "10000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "430", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra Neo 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra Neo 0.4 nozzle.json index 0dd6faaac5..bf2a8d58e8 100644 --- a/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra Neo 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "150", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.12mm High Quality @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.12mm High Quality @Anycubic Kobra X 0.4 nozzle.json index 2aa2090e5e..df07c7fbf8 100644 --- a/resources/profiles/Anycubic/process/0.12mm High Quality @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.12mm High Quality @Anycubic Kobra X 0.4 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "80", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "3dhoneycomb", "sparse_infill_speed": "180", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.12mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.12mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json index 4f323d15ca..cb3f57a159 100644 --- a/resources/profiles/Anycubic/process/0.12mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.12mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -201,10 +201,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "150", @@ -271,7 +271,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json index e6574c017d..4ec997a0db 100644 --- a/resources/profiles/Anycubic/process/0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "sparse_infill_speed": "180", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.16mm High Quality @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.16mm High Quality @Anycubic Kobra X 0.4 nozzle.json index 217080328f..8f75948075 100644 --- a/resources/profiles/Anycubic/process/0.16mm High Quality @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.16mm High Quality @Anycubic Kobra X 0.4 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "200", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json index 67593bc00c..12c6d8bd27 100644 --- a/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "300", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json index 9246577c30..c23132bcfb 100644 --- a/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "30%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "300", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json index 7576c1e7e9..a5668614a5 100644 --- a/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "150", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json index 1554deddd4..283b342d49 100644 --- a/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -201,10 +201,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "300", @@ -271,7 +271,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra Neo 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra Neo 0.4 nozzle.json index c377f60ba1..a2725e692f 100644 --- a/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra Neo 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "150", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra X 0.4 nozzle.json index 708ae96dec..a1b96bf53c 100644 --- a/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra X 0.4 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "sparse_infill_speed": "350", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.18mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/process/0.18mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json index 6c2996b46d..eb4fcbf0f3 100644 --- a/resources/profiles/Anycubic/process/0.18mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/process/0.18mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "80", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.62", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "100", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.20mm High Quality @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm High Quality @Anycubic Kobra X 0.4 nozzle.json index d3e98b754a..9ec3d02de1 100644 --- a/resources/profiles/Anycubic/process/0.20mm High Quality @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm High Quality @Anycubic Kobra X 0.4 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "200", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle.json index 7cffcc6a11..1952723c26 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "200", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json index 18b613502e..87dba6f053 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "150", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle.json index c4bdafdbbe..af476d81f4 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "200", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle.json index 470a72ef01..1a68255226 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "200", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 0.4 nozzle.json index 550d9ad699..d0c88dea58 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "30%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "300", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json index 69b81190bc..5eaf61f432 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -201,10 +201,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "300", @@ -271,7 +271,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json index d063d221a1..bbda2c2422 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.82", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "100", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra Neo 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra Neo 0.4 nozzle.json index 7214088457..30d5c15c5e 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra Neo 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "150", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra S1 0.4 nozzle.json index 22ad731b0d..6549cf28e9 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra S1 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "270", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "outer wall/inner wall", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra X 0.4 nozzle.json index bcb53b99ff..db1ff50f64 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra X 0.4 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "sparse_infill_speed": "300", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.24mm Draft @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.24mm Draft @Anycubic Kobra 3 0.4 nozzle.json index 3b3e49c1d9..971bd32318 100644 --- a/resources/profiles/Anycubic/process/0.24mm Draft @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.24mm Draft @Anycubic Kobra 3 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "30%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "200", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json index 830feea0d8..a2619bcd50 100644 --- a/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -201,10 +201,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "150", @@ -271,7 +271,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json index 7ff1f6f784..50c9dc9b2f 100644 --- a/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "80", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.62", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "100", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json index f0c3dd070a..ae710a3819 100644 --- a/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.82", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "100", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra X 0.4 nozzle.json index c6fd128b25..d10b3941c2 100644 --- a/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra X 0.4 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "sparse_infill_speed": "230", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json index cf6ce5f69b..2e0a0c6882 100644 --- a/resources/profiles/Anycubic/process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "120", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json index 73ea8f8696..c97ba652f2 100644 --- a/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "120", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json index f06f2da123..e12f093307 100644 --- a/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -201,10 +201,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "150", @@ -271,7 +271,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra Neo 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra Neo 0.4 nozzle.json index 7b8d07e938..d55474718a 100644 --- a/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra Neo 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "120", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra X 0.4 nozzle.json index d28e2811c3..8c7d078634 100644 --- a/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra X 0.4 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "sparse_infill_speed": "200", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json index 723f2c83f8..7ad0b29957 100644 --- a/resources/profiles/Anycubic/process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "30%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "200", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 0.6 nozzle.json b/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 0.6 nozzle.json index 8a7b072cfc..1449960c94 100644 --- a/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 0.6 nozzle.json +++ b/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 0.6 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "10000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.62", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "100", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json index 487055616a..723e5f30a1 100644 --- a/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "80", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.62", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "100", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.32mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/process/0.32mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json index d17364e615..d938dcf6e9 100644 --- a/resources/profiles/Anycubic/process/0.32mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/process/0.32mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.82", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "100", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.36mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/process/0.36mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json index d695267163..ee64ec6c4e 100644 --- a/resources/profiles/Anycubic/process/0.36mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/process/0.36mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "80", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.62", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "100", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json b/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json index 413a8a58cd..d8a97a358e 100644 --- a/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json +++ b/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.82", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "100", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json index 13bb50eb8c..716512b2d9 100644 --- a/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.82", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "100", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.42mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/process/0.42mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json index 959de1ec00..96480e7a25 100644 --- a/resources/profiles/Anycubic/process/0.42mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/process/0.42mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "80", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.62", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "100", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Anycubic/process/0.48mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/process/0.48mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json index 3ecfc72bd8..72faf5285f 100644 --- a/resources/profiles/Anycubic/process/0.48mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/process/0.48mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json @@ -212,10 +212,10 @@ "smooth_coefficient": "40", "smooth_speed_discontinuity_area": "1", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "5000", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.82", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "100", @@ -285,7 +285,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Artillery/process/0.08mm Extra Fine @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.08mm Extra Fine @Artillery M1 Pro 0.4 nozzle.json index 34f24cc3e0..93b8613da9 100644 --- a/resources/profiles/Artillery/process/0.08mm Extra Fine @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.08mm Extra Fine @Artillery M1 Pro 0.4 nozzle.json @@ -190,10 +190,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "sparse_infill_speed": "450", @@ -251,7 +251,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", "wall_transition_angle": "10", diff --git a/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.2 nozzle.json index aeb145fbaa..5123de081a 100644 --- a/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.2 nozzle.json @@ -195,10 +195,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.22", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "100", @@ -265,7 +265,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "4", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.4 nozzle.json index e2d58ef8f0..0d896ca2be 100644 --- a/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.4 nozzle.json @@ -186,10 +186,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "gyroid", "spiral_mode": "0", @@ -250,7 +250,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Artillery/process/0.12mm Fine @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.12mm Fine @Artillery M1 Pro 0.4 nozzle.json index f22b216668..245473f07c 100644 --- a/resources/profiles/Artillery/process/0.12mm Fine @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.12mm Fine @Artillery M1 Pro 0.4 nozzle.json @@ -188,10 +188,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "spiral_mode": "0", @@ -250,7 +250,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Artillery/process/0.12mm High Quality @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.12mm High Quality @Artillery M1 Pro 0.4 nozzle.json index 1acf0b7148..bdf9bdf87d 100644 --- a/resources/profiles/Artillery/process/0.12mm High Quality @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.12mm High Quality @Artillery M1 Pro 0.4 nozzle.json @@ -187,10 +187,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "gyroid", "spiral_mode": "0", @@ -250,7 +250,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Artillery/process/0.16mm High Quality @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.16mm High Quality @Artillery M1 Pro 0.4 nozzle.json index dbd94daa3e..4fe81c286d 100644 --- a/resources/profiles/Artillery/process/0.16mm High Quality @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.16mm High Quality @Artillery M1 Pro 0.4 nozzle.json @@ -188,10 +188,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "spiral_mode": "0", @@ -250,7 +250,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Artillery/process/0.16mm Optimal @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.16mm Optimal @Artillery M1 Pro 0.4 nozzle.json index 1158be81a0..03c9cadacc 100644 --- a/resources/profiles/Artillery/process/0.16mm Optimal @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.16mm Optimal @Artillery M1 Pro 0.4 nozzle.json @@ -191,10 +191,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "spiral_mode": "0", @@ -250,7 +250,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Artillery/process/0.20mm Standard @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Standard @Artillery M1 Pro 0.4 nozzle.json index e1cd9210ef..dadf30880e 100644 --- a/resources/profiles/Artillery/process/0.20mm Standard @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Standard @Artillery M1 Pro 0.4 nozzle.json @@ -192,10 +192,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "sparse_infill_speed": "270", @@ -251,7 +251,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", "wall_transition_angle": "10", diff --git a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json index d3e75d5883..3acd94ae92 100644 --- a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json @@ -181,10 +181,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "150", @@ -250,7 +250,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "3", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json index 176634f553..83760ac0f5 100644 --- a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json @@ -181,10 +181,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "150", @@ -250,7 +250,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "3", "wall_sequence": "outer wall/inner wall", diff --git a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json index 0cf77f1a88..8268b4c684 100644 --- a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json @@ -181,10 +181,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "200", @@ -250,7 +250,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json index e3f2a26897..2b46ef8cc0 100644 --- a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json @@ -181,10 +181,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "200", @@ -250,7 +250,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Artillery/process/0.20mm Strength @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Strength @Artillery M1 Pro 0.4 nozzle.json index c5e9970026..d49c0d1cc4 100644 --- a/resources/profiles/Artillery/process/0.20mm Strength @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Strength @Artillery M1 Pro 0.4 nozzle.json @@ -189,10 +189,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "25%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "sparse_infill_speed": "270", @@ -251,7 +251,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_sequence": "inner wall/outer wall", "wall_transition_angle": "10", diff --git a/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.4 nozzle.json index f85a831c92..15f13e26b3 100644 --- a/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.4 nozzle.json @@ -186,10 +186,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "sparse_infill_speed": "230", @@ -250,7 +250,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.6 nozzle.json index f328383dc3..16d057d881 100644 --- a/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.6 nozzle.json @@ -195,10 +195,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.62", "sparse_infill_pattern": "grid", "sparse_infill_speed": "100", @@ -265,7 +265,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.8 nozzle.json index 01c1f25f8e..ce4ad73540 100644 --- a/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.8 nozzle.json @@ -195,10 +195,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.82", "sparse_infill_pattern": "grid", "sparse_infill_speed": "100", @@ -265,7 +265,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Artillery/process/0.28mm Extra Draft @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.28mm Extra Draft @Artillery M1 Pro 0.4 nozzle.json index f9ced6355a..dcb8998cf6 100644 --- a/resources/profiles/Artillery/process/0.28mm Extra Draft @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.28mm Extra Draft @Artillery M1 Pro 0.4 nozzle.json @@ -188,10 +188,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "sparse_infill_speed": "200", @@ -250,7 +250,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/CoLiDo/process/fdm_process_colidodiy40_common.json b/resources/profiles/CoLiDo/process/fdm_process_colidodiy40_common.json index f612105237..b12228818a 100644 --- a/resources/profiles/CoLiDo/process/fdm_process_colidodiy40_common.json +++ b/resources/profiles/CoLiDo/process/fdm_process_colidodiy40_common.json @@ -185,10 +185,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.4", "sparse_infill_pattern": "grid", "sparse_infill_speed": "270", @@ -255,7 +255,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/CoLiDo/process/fdm_process_colidox16_common.json b/resources/profiles/CoLiDo/process/fdm_process_colidox16_common.json index 0ea02caf84..3306fbda47 100644 --- a/resources/profiles/CoLiDo/process/fdm_process_colidox16_common.json +++ b/resources/profiles/CoLiDo/process/fdm_process_colidox16_common.json @@ -196,10 +196,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.4", "sparse_infill_pattern": "grid", "sparse_infill_speed": "90", @@ -266,7 +266,7 @@ "tree_support_wall_count": "2", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Comgrow/process/fdm_process_comgrow_common.json b/resources/profiles/Comgrow/process/fdm_process_comgrow_common.json index 855d58bc84..b4441aa4a5 100644 --- a/resources/profiles/Comgrow/process/fdm_process_comgrow_common.json +++ b/resources/profiles/Comgrow/process/fdm_process_comgrow_common.json @@ -137,10 +137,10 @@ "slowdown_for_curled_perimeters": "0", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "10%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.4", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "200", @@ -199,7 +199,7 @@ "tree_support_top_rate": "30%", "tree_support_wall_count": "0", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "3", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 Max 0.4mm nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 Max 0.4mm nozzle.json index 4d11f181dc..2f807eea7f 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 Max 0.4mm nozzle.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 Max 0.4mm nozzle.json @@ -170,10 +170,10 @@ "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "10", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.55", "sparse_infill_pattern": "zig-zag", "sparse_infill_speed": "500", @@ -240,7 +240,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality K2 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality K2 0.4 nozzle.json index a23da736cf..c55d985a14 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality K2 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality K2 0.4 nozzle.json @@ -175,10 +175,10 @@ "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "sparse_infill_speed": "270", @@ -247,7 +247,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Creality/process/0.20mm Ultrafast @Creality Ender-5 Max 0.4mm nozzle.json b/resources/profiles/Creality/process/0.20mm Ultrafast @Creality Ender-5 Max 0.4mm nozzle.json index 89c8ce6420..322d3617eb 100644 --- a/resources/profiles/Creality/process/0.20mm Ultrafast @Creality Ender-5 Max 0.4mm nozzle.json +++ b/resources/profiles/Creality/process/0.20mm Ultrafast @Creality Ender-5 Max 0.4mm nozzle.json @@ -172,10 +172,10 @@ "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "10", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.55", "sparse_infill_pattern": "zig-zag", "sparse_infill_speed": "500", @@ -242,7 +242,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Creality/process/0.30mm Standard @Creality K2 0.6 nozzle.json b/resources/profiles/Creality/process/0.30mm Standard @Creality K2 0.6 nozzle.json index d61f1ba20f..7a05eb7d6c 100644 --- a/resources/profiles/Creality/process/0.30mm Standard @Creality K2 0.6 nozzle.json +++ b/resources/profiles/Creality/process/0.30mm Standard @Creality K2 0.6 nozzle.json @@ -152,10 +152,10 @@ "slowdown_for_curled_perimeters": "0", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.62", "sparse_infill_pattern": "grid", "sparse_infill_speed": "120", @@ -222,7 +222,7 @@ "tree_support_top_rate": "30%", "tree_support_wall_count": "0", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Creality/process/0.40mm Standard @Creality K2 0.8 nozzle.json b/resources/profiles/Creality/process/0.40mm Standard @Creality K2 0.8 nozzle.json index 51d383111f..c5f40a4379 100644 --- a/resources/profiles/Creality/process/0.40mm Standard @Creality K2 0.8 nozzle.json +++ b/resources/profiles/Creality/process/0.40mm Standard @Creality K2 0.8 nozzle.json @@ -152,10 +152,10 @@ "slowdown_for_curled_perimeters": "0", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.82", "sparse_infill_pattern": "grid", "sparse_infill_speed": "120", @@ -222,7 +222,7 @@ "tree_support_top_rate": "30%", "tree_support_wall_count": "0", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/Cubicon/process/process template @base.json b/resources/profiles/Cubicon/process/process template @base.json index 214f41171a..8d1a85cdbc 100644 --- a/resources/profiles/Cubicon/process/process template @base.json +++ b/resources/profiles/Cubicon/process/process template @base.json @@ -211,10 +211,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "10%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "sparse_infill_speed": "270", @@ -284,7 +284,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "outer wall/inner wall", diff --git a/resources/profiles/Eryone/process/0.20mm Standard @Thinker X400.json b/resources/profiles/Eryone/process/0.20mm Standard @Thinker X400.json index 86d6e635bc..4eae544e9d 100644 --- a/resources/profiles/Eryone/process/0.20mm Standard @Thinker X400.json +++ b/resources/profiles/Eryone/process/0.20mm Standard @Thinker X400.json @@ -144,10 +144,10 @@ "slowdown_for_curled_perimeters": "0", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.54", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "250", @@ -208,7 +208,7 @@ "tree_support_top_rate": "30%", "tree_support_wall_count": "2", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Eryone/process/fdm_process_eryone_ER20_common.json b/resources/profiles/Eryone/process/fdm_process_eryone_ER20_common.json index c97410b1cf..4f142e89e0 100644 --- a/resources/profiles/Eryone/process/fdm_process_eryone_ER20_common.json +++ b/resources/profiles/Eryone/process/fdm_process_eryone_ER20_common.json @@ -136,10 +136,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "20%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "gyroid", "sparse_infill_speed": "80", diff --git a/resources/profiles/Flashforge/process/0.20mm Standard @Flashforge G3U 0.4 Nozzle.json b/resources/profiles/Flashforge/process/0.20mm Standard @Flashforge G3U 0.4 Nozzle.json index 79727d2e61..5891d54b67 100644 --- a/resources/profiles/Flashforge/process/0.20mm Standard @Flashforge G3U 0.4 Nozzle.json +++ b/resources/profiles/Flashforge/process/0.20mm Standard @Flashforge G3U 0.4 Nozzle.json @@ -147,10 +147,10 @@ "slowdown_for_curled_perimeters": "0", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "270", @@ -212,7 +212,7 @@ "tree_support_top_rate": "30%", "tree_support_wall_count": "0", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/FlyingBear/process/Ghost7/fdm_process_common_Ghost7.json b/resources/profiles/FlyingBear/process/Ghost7/fdm_process_common_Ghost7.json index 695ecc7379..e21d9fa213 100644 --- a/resources/profiles/FlyingBear/process/Ghost7/fdm_process_common_Ghost7.json +++ b/resources/profiles/FlyingBear/process/Ghost7/fdm_process_common_Ghost7.json @@ -121,10 +121,10 @@ "slowdown_for_curled_perimeters": "0", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "spiral_mode": "0", @@ -181,7 +181,7 @@ "tree_support_tip_diameter": "0.8", "tree_support_top_rate": "30%", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json b/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json index c1cf3fb0ad..869f9a48cd 100644 --- a/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json +++ b/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json @@ -121,10 +121,10 @@ "slowdown_for_curled_perimeters": "0", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "spiral_mode": "0", @@ -181,7 +181,7 @@ "tree_support_tip_diameter": "0.8", "tree_support_top_rate": "30%", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/FlyingBear/process/fdm_process_common.json b/resources/profiles/FlyingBear/process/fdm_process_common.json index 63bb2fb7d8..719fe2ed2d 100644 --- a/resources/profiles/FlyingBear/process/fdm_process_common.json +++ b/resources/profiles/FlyingBear/process/fdm_process_common.json @@ -121,10 +121,10 @@ "slowdown_for_curled_perimeters": "0", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "spiral_mode": "0", @@ -181,7 +181,7 @@ "tree_support_tip_diameter": "0.8", "tree_support_top_rate": "30%", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Ginger Additive/process/fdm_process_common.json b/resources/profiles/Ginger Additive/process/fdm_process_common.json index e19d8fc0e3..1034df1315 100644 --- a/resources/profiles/Ginger Additive/process/fdm_process_common.json +++ b/resources/profiles/Ginger Additive/process/fdm_process_common.json @@ -178,10 +178,10 @@ ], "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "20%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "3", "sparse_infill_pattern": "cubic", "sparse_infill_speed": "100", @@ -247,7 +247,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", diff --git a/resources/profiles/InfiMech/process/EX+APS/fdm_process_common_EX+APS.json b/resources/profiles/InfiMech/process/EX+APS/fdm_process_common_EX+APS.json index 4f95b7828c..596797e0bb 100644 --- a/resources/profiles/InfiMech/process/EX+APS/fdm_process_common_EX+APS.json +++ b/resources/profiles/InfiMech/process/EX+APS/fdm_process_common_EX+APS.json @@ -121,10 +121,10 @@ "slowdown_for_curled_perimeters": "0", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "spiral_mode": "0", @@ -181,7 +181,7 @@ "tree_support_tip_diameter": "0.8", "tree_support_top_rate": "30%", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/InfiMech/process/EX/fdm_process_common_EX.json b/resources/profiles/InfiMech/process/EX/fdm_process_common_EX.json index 454e329779..f8ac5261ae 100644 --- a/resources/profiles/InfiMech/process/EX/fdm_process_common_EX.json +++ b/resources/profiles/InfiMech/process/EX/fdm_process_common_EX.json @@ -121,10 +121,10 @@ "slowdown_for_curled_perimeters": "0", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "grid", "spiral_mode": "0", @@ -181,7 +181,7 @@ "tree_support_tip_diameter": "0.8", "tree_support_top_rate": "30%", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json b/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json index 82855d9523..fd0d9f15f0 100644 --- a/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json +++ b/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json @@ -121,10 +121,10 @@ "slowdown_for_curled_perimeters": "0", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "spiral_mode": "0", @@ -181,7 +181,7 @@ "tree_support_tip_diameter": "0.8", "tree_support_top_rate": "30%", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/InfiMech/process/fdm_process_common.json b/resources/profiles/InfiMech/process/fdm_process_common.json index 63bb2fb7d8..719fe2ed2d 100644 --- a/resources/profiles/InfiMech/process/fdm_process_common.json +++ b/resources/profiles/InfiMech/process/fdm_process_common.json @@ -121,10 +121,10 @@ "slowdown_for_curled_perimeters": "0", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "spiral_mode": "0", @@ -181,7 +181,7 @@ "tree_support_tip_diameter": "0.8", "tree_support_top_rate": "30%", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "2", diff --git a/resources/profiles/Kingroon/process/fdm_process_common.json b/resources/profiles/Kingroon/process/fdm_process_common.json index cbb0dfe738..dc3ef0890c 100644 --- a/resources/profiles/Kingroon/process/fdm_process_common.json +++ b/resources/profiles/Kingroon/process/fdm_process_common.json @@ -117,10 +117,10 @@ "slow_down_layers": "0", "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "100", @@ -171,7 +171,7 @@ "tree_support_brim_width": "3", "tree_support_wall_count": "0", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_infill_order": "inner wall/outer wall/infill", "wall_loops": "3", diff --git a/resources/profiles/Phrozen/process/0.20mm Standard @Phrozen Arco 0.4 nozzle.json b/resources/profiles/Phrozen/process/0.20mm Standard @Phrozen Arco 0.4 nozzle.json index 6d735225e4..72f5d17c59 100644 --- a/resources/profiles/Phrozen/process/0.20mm Standard @Phrozen Arco 0.4 nozzle.json +++ b/resources/profiles/Phrozen/process/0.20mm Standard @Phrozen Arco 0.4 nozzle.json @@ -186,10 +186,10 @@ "small_perimeter_speed": "50%", "small_perimeter_threshold": "0", "solid_infill_direction": "45", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "100%", "sparse_infill_density": "15%", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "270", @@ -256,7 +256,7 @@ "tree_support_wall_count": "0", "wall_direction": "auto", "wall_distribution_count": "1", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "outer wall/inner wall", diff --git a/resources/profiles/Prusa/process/process_common_mk4s.json b/resources/profiles/Prusa/process/process_common_mk4s.json index cf2c2c2b71..2c0add8e4e 100644 --- a/resources/profiles/Prusa/process/process_common_mk4s.json +++ b/resources/profiles/Prusa/process/process_common_mk4s.json @@ -50,9 +50,9 @@ "resolution": "0", "slice_closing_radius": "0.049", "small_perimeter_speed": "170", - "solid_infill_filament": "1", + "solid_infill_filament": "0", "sparse_infill_acceleration": "4000", - "sparse_infill_filament": "1", + "sparse_infill_filament": "0", "sparse_infill_line_width": "0.45", "sparse_infill_pattern": "crosshatch", "sparse_infill_speed": "200", @@ -85,7 +85,7 @@ "tree_support_branch_diameter_double_wall": "3", "tree_support_tip_diameter": "0.8", "tree_support_top_rate": "30%", - "wall_filament": "1", + "wall_filament": "0", "wall_generator": "arachne", "wall_loops": "2" } diff --git a/src/OrcaSlicer.cpp b/src/OrcaSlicer.cpp index 7107e1ba1e..2e445cadfd 100644 --- a/src/OrcaSlicer.cpp +++ b/src/OrcaSlicer.cpp @@ -1591,7 +1591,7 @@ int CLI::run(int argc, char **argv) record_exit_reson(outfile_dir, CLI_FILE_VERSION_NOT_SUPPORTED, 0, cli_errors[CLI_FILE_VERSION_NOT_SUPPORTED], sliced_info); flush_and_exit(CLI_FILE_VERSION_NOT_SUPPORTED); } - Semver old_version(1, 5, 9), old_version2(1, 5, 9), old_version3(2, 0, 0), old_version4(2, 2, 0); + Semver old_version(1, 5, 9), old_version2(1, 5, 9), old_version3(2, 0, 0), old_version4(2, 2, 0), old_version5("2.4.0"); if ((file_version < old_version) && !config.empty()) { translate_old = true; BOOST_LOG_TRIVIAL(info) << boost::format("old 3mf version %1%, need to translate")%file_version.to_string(); @@ -1606,6 +1606,19 @@ int CLI::run(int argc, char **argv) BOOST_LOG_TRIVIAL(info) << boost::format("old 3mf version %1%, need to set enable_wrapping_detection to false")%file_version.to_string(); } + if ((file_version < old_version5) && !config.empty()) { + int converted_count = ConfigMigrations::migrate_legacy_feature_filament_defaults(config); + for (ModelObject *model_object : model.objects) { + converted_count += ConfigMigrations::migrate_legacy_feature_filament_defaults(model_object->config); + for (ModelVolume *model_volume : model_object->volumes) + converted_count += ConfigMigrations::migrate_legacy_feature_filament_defaults(model_volume->config); + } + + if (converted_count > 0) { + BOOST_LOG_TRIVIAL(info) << boost::format("old 3mf version %1%, migrated %2% feature filament selections from 1 to 0 (Default)") % file_version.to_string() % converted_count; + } + } + if (normative_check) { ConfigOptionStrings* postprocess_scripts = config.option("post_process"); if (postprocess_scripts) { diff --git a/src/libslic3r/Config.hpp b/src/libslic3r/Config.hpp index 8ef014564c..443a88d9d2 100644 --- a/src/libslic3r/Config.hpp +++ b/src/libslic3r/Config.hpp @@ -2968,6 +2968,34 @@ private: std::ostream& operator<<(std::ostream& os, const DynamicConfig::DynamicConfigDifference& diff); +namespace ConfigMigrations { + +template +inline int migrate_legacy_feature_filament_defaults(ConfigLike &cfg) +{ + static const char *feature_filament_keys[] = { + "wall_filament", + "sparse_infill_filament", + "solid_infill_filament" + }; + + int converted_count = 0; + for (const char *key : feature_filament_keys) { + if (!cfg.has(key)) + continue; + + const ConfigOption *opt = cfg.option(key); + if (opt != nullptr && opt->getInt() == 1) { + cfg.set_key_value(key, new ConfigOptionInt(0)); + ++converted_count; + } + } + + return converted_count; +} + +} + // Configuration store with a static definition of configuration values. // In Slic3r, the static configuration stores are during the slicing / g-code generation for efficiency reasons, // because the configuration values could be accessed directly. diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 0a9d1f5452..1e7ddd4849 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -4103,13 +4103,13 @@ DynamicPrintConfig PresetBundle::full_fff_config(bool apply_extruder, std::optio opt->value = boost::algorithm::clamp(opt->value, 0, int(num_filaments)); } - static const char* keys_1based[] = {"wall_filament", "sparse_infill_filament", "solid_infill_filament"}; - for (size_t i = 0; i < sizeof(keys_1based) / sizeof(keys_1based[0]); ++ i) { - std::string key = std::string(keys_1based[i]); + static const char* keys_with_default[] = {"wall_filament", "sparse_infill_filament", "solid_infill_filament"}; + for (size_t i = 0; i < sizeof(keys_with_default) / sizeof(keys_with_default[0]); ++ i) { + std::string key = std::string(keys_with_default[i]); auto *opt = dynamic_cast(out.option(key, false)); assert(opt != nullptr); - if(opt->value < 1 || opt->value > int(num_filaments)) - opt->value = 1; + if(opt->value < 0 || opt->value > int(num_filaments)) + opt->value = 0; } out.option("print_settings_id", true)->value = this->prints.get_selected_preset_name(); out.option("filament_settings_id", true)->values = this->filament_presets; diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index cc1fb1a7f8..7c68e70b8f 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -4021,10 +4021,10 @@ void PrintConfigDef::init_fff_params() def->gui_type = ConfigOptionDef::GUIType::i_enum_open; def->label = L("Infill"); def->category = L("Extruders"); - def->tooltip = L("Filament to print internal sparse infill."); - def->min = 1; + def->tooltip = L("Filament to print internal sparse infill.\n\"Default\" uses the active object/part filament."); + def->min = 0; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionInt(1)); + def->set_default_value(new ConfigOptionInt(0)); def = this->add("sparse_infill_line_width", coFloatOrPercent); def->label = L("Sparse infill"); @@ -4901,10 +4901,10 @@ void PrintConfigDef::init_fff_params() def->gui_type = ConfigOptionDef::GUIType::i_enum_open; def->label = L("Walls"); def->category = L("Extruders"); - def->tooltip = L("Filament to print walls."); - def->min = 1; + def->tooltip = L("Filament to print walls.\n\"Default\" uses the active object/part filament."); + def->min = 0; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionInt(1)); + def->set_default_value(new ConfigOptionInt(0)); def = this->add("inner_wall_line_width", coFloatOrPercent); def->label = L("Inner wall"); @@ -5662,10 +5662,10 @@ void PrintConfigDef::init_fff_params() def->gui_type = ConfigOptionDef::GUIType::i_enum_open; def->label = L("Solid infill"); def->category = L("Extruders"); - def->tooltip = L("Filament to print solid infill."); - def->min = 1; + def->tooltip = L("Filament to print solid infill.\n\"Default\" uses the active object/part filament."); + def->min = 0; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionInt(1)); + def->set_default_value(new ConfigOptionInt(0)); def = this->add("internal_solid_infill_line_width", coFloatOrPercent); def->label = L("Internal solid infill"); @@ -6041,7 +6041,7 @@ void PrintConfigDef::init_fff_params() def->gui_type = ConfigOptionDef::GUIType::i_enum_open; def->label = L("Support/raft base"); def->category = L("Support"); - def->tooltip = L("Filament to print support base and raft. \"Default\" means no specific filament for support and current filament is used."); + def->tooltip = L("Filament to print support base and raft.\n\"Default\" means no specific filament for support and current filament is used."); def->min = 0; def->mode = comSimple; def->set_default_value(new ConfigOptionInt(0)); @@ -6076,7 +6076,7 @@ void PrintConfigDef::init_fff_params() def->gui_type = ConfigOptionDef::GUIType::i_enum_open; def->label = L("Support/raft interface"); def->category = L("Support"); - def->tooltip = L("Filament to print support interface. \"Default\" means no specific filament for support interface and current filament is used."); + def->tooltip = L("Filament to print support interface.\n\"Default\" means no specific filament for support interface and current filament is used."); def->min = 0; // BBS def->mode = comSimple; @@ -8348,9 +8348,9 @@ void DynamicPrintConfig::normalize_fdm(int used_filaments) int extruder = this->option("extruder")->getInt(); this->erase("extruder"); if (extruder != 0) { - if (!this->has("sparse_infill_filament")) + if (!this->has("sparse_infill_filament") || this->option("sparse_infill_filament")->getInt() == 0) this->option("sparse_infill_filament", true)->setInt(extruder); - if (!this->has("wall_filament")) + if (!this->has("wall_filament") || this->option("wall_filament")->getInt() == 0) this->option("wall_filament", true)->setInt(extruder); // Don't propagate the current extruder to support. // For non-soluble supports, the default "0" extruder means to use the active extruder, @@ -8362,8 +8362,11 @@ void DynamicPrintConfig::normalize_fdm(int used_filaments) } } - if (!this->has("solid_infill_filament") && this->has("sparse_infill_filament")) - this->option("solid_infill_filament", true)->setInt(this->option("sparse_infill_filament")->getInt()); + if (this->has("sparse_infill_filament")) { + int sparse_infill_filament = this->option("sparse_infill_filament")->getInt(); + if (sparse_infill_filament > 0 && (!this->has("solid_infill_filament") || this->option("solid_infill_filament")->getInt() == 0)) + this->option("solid_infill_filament", true)->setInt(sparse_infill_filament); + } if (this->has("spiral_mode") && this->opt("spiral_mode", true)->value) { { @@ -8421,9 +8424,9 @@ void DynamicPrintConfig::normalize_fdm_1() int extruder = this->option("extruder")->getInt(); this->erase("extruder"); if (extruder != 0) { - if (!this->has("sparse_infill_filament")) + if (!this->has("sparse_infill_filament") || this->option("sparse_infill_filament")->getInt() == 0) this->option("sparse_infill_filament", true)->setInt(extruder); - if (!this->has("wall_filament")) + if (!this->has("wall_filament") || this->option("wall_filament")->getInt() == 0) this->option("wall_filament", true)->setInt(extruder); // Don't propagate the current extruder to support. // For non-soluble supports, the default "0" extruder means to use the active extruder, @@ -8435,8 +8438,11 @@ void DynamicPrintConfig::normalize_fdm_1() } } - if (!this->has("solid_infill_filament") && this->has("sparse_infill_filament")) - this->option("solid_infill_filament", true)->setInt(this->option("sparse_infill_filament")->getInt()); + if (this->has("sparse_infill_filament")) { + int sparse_infill_filament = this->option("sparse_infill_filament")->getInt(); + if (sparse_infill_filament > 0 && (!this->has("solid_infill_filament") || this->option("solid_infill_filament")->getInt() == 0)) + this->option("solid_infill_filament", true)->setInt(sparse_infill_filament); + } if (this->has("spiral_mode") && this->opt("spiral_mode", true)->value) { { diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index aee470bab5..5449f7df3a 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -3511,6 +3511,12 @@ static void clamp_exturder_to_default(ConfigOptionInt &opt, size_t num_extruders opt.value = 1; } +static void clamp_feature_filament_to_valid(ConfigOptionInt &opt, size_t num_extruders) +{ + if (opt.value <= 0 || opt.value > (int)num_extruders) + opt.value = 1; +} + PrintObjectConfig PrintObject::object_config_from_model_object(const PrintObjectConfig &default_object_config, const ModelObject &object, size_t num_extruders) { PrintObjectConfig config = default_object_config; @@ -3528,61 +3534,88 @@ PrintObjectConfig PrintObject::object_config_from_model_object(const PrintObject const std::string key_extruder { "extruder" }; static constexpr const std::initializer_list keys_extruders { "sparse_infill_filament"sv, "solid_infill_filament"sv, "wall_filament"sv }; -static void apply_to_print_region_config(PrintRegionConfig &out, const DynamicPrintConfig &in) +struct FeatureFilamentOverrideMask { - // 1) Map legacy "extruder" to feature filament keys as a fallback only. - // If any feature-specific filament is explicitly set, keep those values. + bool sparse_infill_filament = false; + bool solid_infill_filament = false; + bool wall_filament = false; +}; + +static void apply_to_print_region_config(PrintRegionConfig &out, const DynamicPrintConfig &in, FeatureFilamentOverrideMask &feature_overrides) +{ + // 1) Explicit feature filament values take precedence over base extruder fallback. auto *opt_extruder = in.opt(key_extruder); - auto *opt_sparse_infill_filament = in.opt("sparse_infill_filament"); - auto *opt_solid_infill_filament = in.opt("solid_infill_filament"); - auto *opt_wall_filament = in.opt("wall_filament"); - const bool has_feature_filament_override = - (opt_sparse_infill_filament != nullptr && opt_sparse_infill_filament->value > 0) || - (opt_solid_infill_filament != nullptr && opt_solid_infill_filament->value > 0) || - (opt_wall_filament != nullptr && opt_wall_filament->value > 0); - if (opt_extruder) - if (int extruder = opt_extruder->value; extruder > 1 && ! has_feature_filament_override) { - // Not a default extruder. - out.sparse_infill_filament.value = extruder; - out.solid_infill_filament.value = extruder; - out.wall_filament.value = extruder; - } + int base_extruder = (opt_extruder != nullptr) ? opt_extruder->value : 0; + // 2) Copy the rest of the values. for (auto it = in.cbegin(); it != in.cend(); ++ it) if (it->first != key_extruder) if (ConfigOption* my_opt = out.option(it->first, false); my_opt != nullptr) { if (one_of(it->first, keys_extruders)) { - // Ignore "default" extruders. + // "Default" (0) clears explicit override for this scope and lets fallback apply. int extruder = static_cast(it->second.get())->value; - if (extruder > 0) + if (extruder > 0) { my_opt->setInt(extruder); + if (it->first == "sparse_infill_filament") + feature_overrides.sparse_infill_filament = true; + else if (it->first == "solid_infill_filament") + feature_overrides.solid_infill_filament = true; + else if (it->first == "wall_filament") + feature_overrides.wall_filament = true; + } else { + if (it->first == "sparse_infill_filament") + feature_overrides.sparse_infill_filament = false; + else if (it->first == "solid_infill_filament") + feature_overrides.solid_infill_filament = false; + else if (it->first == "wall_filament") + feature_overrides.wall_filament = false; + } } else my_opt->set(it->second.get()); } + + // 3) Apply base extruder only to features that were not explicitly overridden. + if (base_extruder > 0) { + if (!feature_overrides.sparse_infill_filament) + out.sparse_infill_filament.value = base_extruder; + if (!feature_overrides.solid_infill_filament) + out.solid_infill_filament.value = base_extruder; + if (!feature_overrides.wall_filament) + out.wall_filament.value = base_extruder; + } } PrintRegionConfig region_config_from_model_volume(const PrintRegionConfig &default_or_parent_region_config, const DynamicPrintConfig *layer_range_config, const ModelVolume &volume, size_t num_extruders) { PrintRegionConfig config = default_or_parent_region_config; + FeatureFilamentOverrideMask feature_overrides; + + // For model parts, non-zero values coming from the print defaults should stay explicit. + if (volume.is_model_part()) { + feature_overrides.sparse_infill_filament = (config.sparse_infill_filament.value > 0); + feature_overrides.solid_infill_filament = (config.solid_infill_filament.value > 0); + feature_overrides.wall_filament = (config.wall_filament.value > 0); + } + if (volume.is_model_part()) { // default_or_parent_region_config contains the Print's PrintRegionConfig. // Override with ModelObject's PrintRegionConfig values. - apply_to_print_region_config(config, volume.get_object()->config.get()); + apply_to_print_region_config(config, volume.get_object()->config.get(), feature_overrides); } else { // default_or_parent_region_config contains parent PrintRegion config, which already contains ModelVolume's config. } - apply_to_print_region_config(config, volume.config.get()); + apply_to_print_region_config(config, volume.config.get(), feature_overrides); if (! volume.material_id().empty()) - apply_to_print_region_config(config, volume.material()->config.get()); + apply_to_print_region_config(config, volume.material()->config.get(), feature_overrides); if (layer_range_config != nullptr) { // Not applicable to modifiers. assert(volume.is_model_part()); - apply_to_print_region_config(config, *layer_range_config); + apply_to_print_region_config(config, *layer_range_config, feature_overrides); } - // Clamp invalid extruders to the default extruder (with index 1). - clamp_exturder_to_default(config.sparse_infill_filament, num_extruders); - clamp_exturder_to_default(config.wall_filament, num_extruders); - clamp_exturder_to_default(config.solid_infill_filament, num_extruders); + // Resolve feature defaults and clamp invalid extruders to index 1. + clamp_feature_filament_to_valid(config.sparse_infill_filament, num_extruders); + clamp_feature_filament_to_valid(config.wall_filament, num_extruders); + clamp_feature_filament_to_valid(config.solid_infill_filament, num_extruders); if (config.sparse_infill_density.value < 0.00011f) // Switch of infill for very low infill rates, also avoid division by zero in infill generator for these very low rates. // See GH issue #5910. diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index 5186a4384d..3b4549e969 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -1573,31 +1573,31 @@ std::vector PartPlate::get_extruders(bool conside_custom_gcode) const plate_extruders.push_back(glb_support_extr); } - int obj_wall_extr = 1; + int obj_wall_extr = 0; const ConfigOption* wall_opt = mo->config.option("wall_filament"); if (wall_opt != nullptr) obj_wall_extr = wall_opt->getInt(); - if (obj_wall_extr != 1) + if (obj_wall_extr != 0) plate_extruders.push_back(obj_wall_extr); - else if (glb_wall_extr != 1) + else if (glb_wall_extr != 0) plate_extruders.push_back(glb_wall_extr); - int obj_sparse_infill_extr = 1; + int obj_sparse_infill_extr = 0; const ConfigOption* sparse_infill_opt = mo->config.option("sparse_infill_filament"); if (sparse_infill_opt != nullptr) obj_sparse_infill_extr = sparse_infill_opt->getInt(); - if (obj_sparse_infill_extr != 1) + if (obj_sparse_infill_extr != 0) plate_extruders.push_back(obj_sparse_infill_extr); - else if (glb_sparse_infill_extr != 1) + else if (glb_sparse_infill_extr != 0) plate_extruders.push_back(glb_sparse_infill_extr); - int obj_solid_infill_extr = 1; + int obj_solid_infill_extr = 0; const ConfigOption* solid_infill_opt = mo->config.option("solid_infill_filament"); if (solid_infill_opt != nullptr) obj_solid_infill_extr = solid_infill_opt->getInt(); - if (obj_solid_infill_extr != 1) + if (obj_solid_infill_extr != 0) plate_extruders.push_back(obj_solid_infill_extr); - else if (glb_solid_infill_extr != 1) + else if (glb_solid_infill_extr != 0) plate_extruders.push_back(glb_solid_infill_extr); } @@ -1695,31 +1695,31 @@ std::vector PartPlate::get_extruders_under_cli(bool conside_custom_gcode, D else if (glb_support_extr != 0) plate_extruders.push_back(glb_support_extr); - int obj_wall_extr = 1; + int obj_wall_extr = 0; const ConfigOption* wall_opt = object->config.option("wall_filament"); if (wall_opt != nullptr) obj_wall_extr = wall_opt->getInt(); - if (obj_wall_extr != 1) + if (obj_wall_extr != 0) plate_extruders.push_back(obj_wall_extr); - else if (glb_wall_extr != 1) + else if (glb_wall_extr != 0) plate_extruders.push_back(glb_wall_extr); - int obj_sparse_infill_extr = 1; + int obj_sparse_infill_extr = 0; const ConfigOption* sparse_infill_opt = object->config.option("sparse_infill_filament"); if (sparse_infill_opt != nullptr) obj_sparse_infill_extr = sparse_infill_opt->getInt(); - if (obj_sparse_infill_extr != 1) + if (obj_sparse_infill_extr != 0) plate_extruders.push_back(obj_sparse_infill_extr); - else if (glb_sparse_infill_extr != 1) + else if (glb_sparse_infill_extr != 0) plate_extruders.push_back(glb_sparse_infill_extr); - int obj_solid_infill_extr = 1; + int obj_solid_infill_extr = 0; const ConfigOption* solid_infill_opt = object->config.option("solid_infill_filament"); if (solid_infill_opt != nullptr) obj_solid_infill_extr = solid_infill_opt->getInt(); - if (obj_solid_infill_extr != 1) + if (obj_solid_infill_extr != 0) plate_extruders.push_back(obj_solid_infill_extr); - else if (glb_solid_infill_extr != 1) + else if (glb_solid_infill_extr != 0) plate_extruders.push_back(glb_solid_infill_extr); } } diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index f16f655ee6..06d1575cca 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -876,54 +876,6 @@ struct DynamicFilamentList : DynamicList } }; -struct DynamicFilamentList1Based : DynamicFilamentList -{ - void apply_on(Choice *c) override - { - if (items.empty()) - update(true); - auto cb = dynamic_cast(c->window); - auto n = cb->GetSelection(); - cb->Clear(); - for (auto i : items) { - cb->Append(i.first, *i.second); - } - if (n < cb->GetCount()) - cb->SetSelection(n); - } - wxString get_value(int index) override - { - wxString str; - str << index+1; - return str; - } - int index_of(wxString value) override - { - long n = 0; - if(!value.ToLong(&n)) - return -1; - --n; - return (n >= 0 && n <= items.size()) ? int(n) : -1; - } - void update(bool force = false) - { - items.clear(); - if (!force && m_choices.empty()) - return; - auto icons = get_extruder_color_icons(true); - auto presets = wxGetApp().preset_bundle->filament_presets; - for (int i = 0; i < presets.size(); ++i) { - wxString str; - std::string type; - wxGetApp().preset_bundle->filaments.find_preset(presets[i])->get_filament_type(type); - str << type; - items.push_back({str, i < icons.size() ? icons[i] : nullptr}); - } - DynamicList::update(); - } - -}; - // Check if the machine supports Junction Deviation (Marlin firmware with machine_max_junction_deviation > 0) static bool has_junction_deviation(const DynamicPrintConfig* printer_config) { @@ -940,7 +892,6 @@ static bool has_junction_deviation(const DynamicPrintConfig* printer_config) } static DynamicFilamentList dynamic_filament_list; -static DynamicFilamentList1Based dynamic_filament_list_1_based; class AMSCountPopupWindow : public PopupWindow { @@ -1647,9 +1598,9 @@ Sidebar::Sidebar(Plater *parent) { Choice::register_dynamic_list("support_filament", &dynamic_filament_list); Choice::register_dynamic_list("support_interface_filament", &dynamic_filament_list); - Choice::register_dynamic_list("wall_filament", &dynamic_filament_list_1_based); - Choice::register_dynamic_list("sparse_infill_filament", &dynamic_filament_list_1_based); - Choice::register_dynamic_list("solid_infill_filament", &dynamic_filament_list_1_based); + Choice::register_dynamic_list("wall_filament", &dynamic_filament_list); + Choice::register_dynamic_list("sparse_infill_filament", &dynamic_filament_list); + Choice::register_dynamic_list("solid_infill_filament", &dynamic_filament_list); Choice::register_dynamic_list("wipe_tower_filament", &dynamic_filament_list); p->scrolled = new wxPanel(this); @@ -3767,7 +3718,6 @@ void Sidebar::show_SEMM_buttons() void Sidebar::update_dynamic_filament_list() { dynamic_filament_list.update(); - dynamic_filament_list_1_based.update(); } PlaterPresetComboBox* Sidebar::printer_combox() @@ -6203,6 +6153,23 @@ std::vector Plater::priv::load_files(const std::vector& input_ } } + if (load_config && !config_loaded.empty() && + (en_3mf_file_type == En3mfType::From_BBS || en_3mf_file_type == En3mfType::From_Orca) && + file_version < Semver("2.4.0-dev")) { + int converted_count = ConfigMigrations::migrate_legacy_feature_filament_defaults(config_loaded); + for (ModelObject *model_object : model.objects) { + converted_count += ConfigMigrations::migrate_legacy_feature_filament_defaults(model_object->config); + for (ModelVolume *model_volume : model_object->volumes) + converted_count += ConfigMigrations::migrate_legacy_feature_filament_defaults(model_volume->config); + } + + if (converted_count > 0) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << " " + << boost::format("old 3mf version %1%, migrated %2% feature filament selections from 1 to 0 (Default)") + % file_version.to_string() % converted_count; + } + } + // plate data if (plate_data.size() > 0) { BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << boost::format(", import 3mf UPDATE_GCODE_RESULT \n"); From ee8bb54ca8dae267536e92908fb8d5071d735249 Mon Sep 17 00:00:00 2001 From: Jingxi-Polymaker Date: Fri, 29 May 2026 15:46:41 +0800 Subject: [PATCH 12/18] Add more Polymaker filament presets (#13858) * add new presets * fix inhernce * fix rename * update * apply fix * update index --- resources/profiles/Anycubic.json | 16 + .../Fiberon PA6-CF20 @Anycubic Kobra S1.json | 81 + .../Panchroma PLA @Anycubic Kobra S1.json | 70 + .../Polymaker PLA Pro @Anycubic Kobra S1.json | 66 + ...r PLA Pro Metallic @Anycubic Kobra S1.json | 66 + resources/profiles/BBL.json | 3776 +++++++++-------- .../Polymaker/Fiberon PA12-CF10 @BBL X1.json | 18 + .../Polymaker/Fiberon PA12-CF10 @base.json | 77 + .../Polymaker/Fiberon PA6-CF20 @BBL X1.json | 18 + .../Polymaker/Fiberon PA6-CF20 @base.json | 74 + .../Polymaker/Fiberon PA6-GF25 @BBL X1.json | 18 + .../Polymaker/Fiberon PA6-GF25 @base.json | 77 + .../Polymaker/Fiberon PA612-CF15 @BBL X1.json | 18 + .../Polymaker/Fiberon PA612-CF15 @base.json | 53 + .../Polymaker/Fiberon PET-CF17 @BBL X1.json | 33 + .../Polymaker/Fiberon PET-CF17 @base.json | 86 + .../Polymaker/Fiberon PETG-ESD @BBL X1.json | 33 + .../Polymaker/Fiberon PETG-rCF08 @BBL X1.json | 92 + .../Polymaker/Fiberon PETG-rCF08 @base.json | 101 + .../Polymaker/Panchroma CoPE @BBL A1.json | 46 +- .../Polymaker/Panchroma CoPE @BBL A1M.json | 46 +- .../Polymaker/Panchroma CoPE @BBL P1P.json | 47 +- .../Polymaker/Panchroma CoPE @BBL X1.json | 47 +- .../Polymaker/Panchroma PLA @BBL A1.json | 43 +- .../Polymaker/Panchroma PLA @BBL A1M.json | 43 +- .../Polymaker/Panchroma PLA @BBL P1P.json | 44 +- .../Polymaker/Panchroma PLA @BBL X1.json | 43 +- .../Panchroma PLA Celestial @BBL A1.json | 40 +- .../Panchroma PLA Celestial @BBL A1M.json | 40 +- .../Panchroma PLA Celestial @BBL P1P.json | 40 +- .../Panchroma PLA Celestial @BBL X1.json | 41 +- .../Panchroma PLA Galaxy @BBL A1.json | 40 +- .../Panchroma PLA Galaxy @BBL A1M.json | 40 +- .../Panchroma PLA Galaxy @BBL P1P.json | 40 +- .../Panchroma PLA Galaxy @BBL X1.json | 41 +- .../Polymaker/Panchroma PLA Glow @BBL A1.json | 41 +- .../Panchroma PLA Glow @BBL A1M.json | 41 +- .../Panchroma PLA Glow @BBL P1P.json | 41 +- .../Polymaker/Panchroma PLA Glow @BBL X1.json | 42 +- .../Panchroma PLA Luminous @BBL A1.json | 41 +- .../Panchroma PLA Luminous @BBL A1M.json | 41 +- .../Panchroma PLA Luminous @BBL P1P.json | 41 +- .../Panchroma PLA Luminous @BBL X1.json | 42 +- .../Panchroma PLA Marble @BBL A1.json | 41 +- .../Panchroma PLA Marble @BBL A1M.json | 41 +- .../Panchroma PLA Marble @BBL P1P.json | 42 +- .../Panchroma PLA Marble @BBL X1.json | 44 +- .../Panchroma PLA Matte @BBL A1.json | 44 +- .../Panchroma PLA Matte @BBL A1M.json | 44 +- .../Panchroma PLA Matte @BBL P1P.json | 45 +- .../Panchroma PLA Matte @BBL X1.json | 47 +- .../Panchroma PLA Metallic @BBL A1.json | 41 +- .../Panchroma PLA Metallic @BBL A1M.json | 41 +- .../Panchroma PLA Metallic @BBL P1P.json | 41 +- .../Panchroma PLA Metallic @BBL X1.json | 42 +- .../Polymaker/Panchroma PLA Neon @BBL A1.json | 44 +- .../Panchroma PLA Neon @BBL A1M.json | 44 +- .../Panchroma PLA Neon @BBL P1P.json | 44 +- .../Polymaker/Panchroma PLA Neon @BBL X1.json | 45 +- .../Panchroma PLA Satin @BBL A1.json | 41 +- .../Panchroma PLA Satin @BBL A1M.json | 41 +- .../Panchroma PLA Satin @BBL P1P.json | 42 +- .../Panchroma PLA Satin @BBL X1.json | 42 +- .../Polymaker/Panchroma PLA Satin @base.json | 1 - .../Polymaker/Panchroma PLA Silk @BBL A1.json | 45 +- .../Panchroma PLA Silk @BBL A1M.json | 45 +- .../Panchroma PLA Silk @BBL P1P.json | 48 +- .../Polymaker/Panchroma PLA Silk @BBL X1.json | 48 +- .../Panchroma PLA Starlight @BBL A1.json | 41 +- .../Panchroma PLA Starlight @BBL A1M.json | 41 +- .../Panchroma PLA Starlight @BBL P1P.json | 41 +- .../Panchroma PLA Starlight @BBL X1.json | 42 +- .../Panchroma PLA Translucent @BBL A1.json | 45 +- .../Panchroma PLA Translucent @BBL A1M.json | 45 +- .../Panchroma PLA Translucent @BBL P1P.json | 45 +- .../Panchroma PLA Translucent @BBL X1.json | 46 +- .../Panchroma PLA UV Shift @BBL A1.json | 41 +- .../Panchroma PLA UV Shift @BBL A1M.json | 41 +- .../Panchroma PLA UV Shift @BBL P1P.json | 41 +- .../Panchroma PLA UV Shift @BBL X1.json | 42 +- .../Polymaker/PolyLite CosPLA @BBL A1.json | 13 + .../Polymaker/PolyLite CosPLA @BBL A1M.json | 13 + .../Polymaker/PolyLite CosPLA @BBL P1P.json | 16 + .../Polymaker/PolyLite CosPLA @BBL X1.json | 16 + .../Polymaker/PolyLite CosPLA @base.json | 71 + .../Polymaker/PolyLite PLA @BBL A1.json | 81 +- .../Polymaker/PolyLite PLA @BBL A1M.json | 65 +- .../Polymaker/PolyLite PLA @BBL X1.json | 163 +- .../PolyLite PLA Galaxy @BBL A1.json | 13 + .../PolyLite PLA Galaxy @BBL A1M.json | 13 + .../PolyLite PLA Galaxy @BBL P1P.json | 16 + .../PolyLite PLA Galaxy @BBL X1.json | 16 + .../Polymaker/PolyLite PLA Galaxy @base.json | 68 + .../Polymaker/PolyLite PLA Glow @BBL A1.json | 13 + .../Polymaker/PolyLite PLA Glow @BBL A1M.json | 13 + .../Polymaker/PolyLite PLA Glow @BBL P1P.json | 16 + .../Polymaker/PolyLite PLA Glow @BBL X1.json | 16 + .../Polymaker/PolyLite PLA Glow @base.json | 68 + .../PolyLite PLA Luminous @BBL A1.json | 13 + .../PolyLite PLA Luminous @BBL A1M.json | 13 + .../PolyLite PLA Luminous @BBL P1P.json | 16 + .../PolyLite PLA Luminous @BBL X1.json | 16 + .../PolyLite PLA Luminous @base.json | 68 + .../Polymaker/PolyLite PLA Neon @BBL A1.json | 13 + .../Polymaker/PolyLite PLA Neon @BBL A1M.json | 13 + .../Polymaker/PolyLite PLA Neon @BBL P1P.json | 16 + .../Polymaker/PolyLite PLA Neon @BBL X1.json | 16 + .../Polymaker/PolyLite PLA Neon @base.json | 68 + .../PolyLite PLA Starlight @BBL A1.json | 13 + .../PolyLite PLA Starlight @BBL A1M.json | 13 + .../PolyLite PLA Starlight @BBL P1P.json | 16 + .../PolyLite PLA Starlight @BBL X1.json | 16 + .../PolyLite PLA Starlight @base.json | 68 + .../PolyLite PLA Translucent @BBL A1.json | 13 + .../PolyLite PLA Translucent @BBL A1M.json | 13 + .../PolyLite PLA Translucent @BBL P1P.json | 16 + .../PolyLite PLA Translucent @BBL X1.json | 16 + .../PolyLite PLA Translucent @base.json | 68 + .../Polymaker/PolyTerra PLA @BBL A1.json | 67 +- .../Polymaker/PolyTerra PLA @BBL A1M.json | 67 +- .../Polymaker/PolyTerra PLA @BBL X1.json | 163 +- .../PolyTerra PLA Marble @BBL A1.json | 13 + .../PolyTerra PLA Marble @BBL A1M.json | 13 + .../PolyTerra PLA Marble @BBL P1P.json | 19 + .../PolyTerra PLA Marble @BBL X1.json | 22 + .../Polymaker/PolyTerra PLA Marble @base.json | 77 + .../Polymaker/PolyTerra PLA+ @BBL A1.json | 13 + .../Polymaker/PolyTerra PLA+ @BBL A1M.json | 13 + .../Polymaker/PolyTerra PLA+ @BBL P1P.json | 16 + .../Polymaker/PolyTerra PLA+ @BBL X1.json | 16 + .../Polymaker/PolyTerra PLA+ @base.json | 71 + resources/profiles/Custom.json | 33 +- resources/profiles/Elegoo.json | 3040 ++++++------- resources/profiles/Flashforge.json | 444 +- .../filament/Flashforge ABS Basic @FF C5.json | 13 +- .../Flashforge ABS Basic @FF C5P.json | 13 +- .../filament/Flashforge ABS-GF @FF C5.json | 13 +- .../filament/Flashforge ABS-GF @FF C5P.json | 13 +- .../filament/Flashforge ASA Basic @FF C5.json | 13 +- .../Flashforge ASA Basic @FF C5P.json | 13 +- .../filament/Flashforge ASA-CF @FF C5.json | 13 +- .../filament/Flashforge ASA-CF @FF C5P.json | 13 +- .../filament/Flashforge ASA-GF @FF C5.json | 13 +- .../filament/Flashforge ASA-GF @FF C5P.json | 13 +- .../filament/Flashforge HIPS @FF C5.json | 13 +- .../filament/Flashforge HIPS @FF C5P.json | 13 +- .../filament/Flashforge HS PETG @FF C5.json | 13 +- .../filament/Flashforge HS PETG @FF C5P.json | 13 +- .../filament/Flashforge HS PLA @FF C5.json | 13 +- .../filament/Flashforge HS PLA @FF C5P.json | 13 +- .../filament/Flashforge PA-CF @FF C5.json | 13 +- .../filament/Flashforge PA-CF @FF C5P.json | 13 +- .../filament/Flashforge PAHT-CF @FF C5.json | 13 +- .../filament/Flashforge PAHT-CF @FF C5P.json | 13 +- .../filament/Flashforge PET-CF @FF C5.json | 13 +- .../filament/Flashforge PET-CF @FF C5P.json | 13 +- .../filament/Flashforge PETG Pro @FF C5.json | 13 +- .../filament/Flashforge PETG Pro @FF C5P.json | 13 +- .../Flashforge PETG Transparent @FF C5.json | 13 +- .../Flashforge PETG Transparent @FF C5P.json | 13 +- .../filament/Flashforge PETG-CF @FF C5.json | 13 +- .../filament/Flashforge PETG-CF @FF C5P.json | 13 +- .../Flashforge PLA Matte @FF C5.json | 13 +- .../Flashforge PLA Matte @FF C5P.json | 13 +- .../Flashforge PLA Metal @FF C5.json | 13 +- .../Flashforge PLA Metal @FF C5P.json | 13 +- .../filament/Flashforge PLA Pro @FF C5.json | 13 +- .../filament/Flashforge PLA Pro @FF C5P.json | 13 +- .../filament/Flashforge PLA Basic @FF C5.json | 13 +- .../Flashforge PLA Basic @FF C5P.json | 13 +- .../Flashforge PLA Color Change @FF C5.json | 13 +- .../Flashforge PLA Color Change @FF C5P.json | 13 +- .../Flashforge PLA Galaxy @FF C5.json | 13 +- .../Flashforge PLA Galaxy @FF C5P.json | 13 +- .../Flashforge PLA Luminous @FF C5.json | 13 +- .../Flashforge PLA Luminous @FF C5P.json | 13 +- .../filament/Flashforge PLA Silk @FF C5.json | 13 +- .../filament/Flashforge PLA Silk @FF C5P.json | 13 +- .../filament/Flashforge PLA-CF @FF C5.json | 13 +- .../filament/Flashforge PLA-CF @FF C5P.json | 13 +- .../filament/Flashforge PPA-CF @FF C5.json | 13 +- .../filament/Flashforge PPA-CF @FF C5P.json | 13 +- .../filament/Flashforge PPS-CF @FF C5.json | 13 +- .../filament/Flashforge PPS-CF @FF C5P.json | 13 +- .../filament/Flashforge PVA @FF C5.json | 13 +- .../filament/Flashforge PVA @FF C5P.json | 13 +- .../filament/Flashforge TPU-64D @FF C5.json | 13 +- .../filament/Flashforge TPU-64D @FF C5P.json | 13 +- .../filament/Flashforge TPU-90A @FF C5.json | 13 +- .../filament/Flashforge TPU-90A @FF C5P.json | 13 +- .../filament/Flashforge TPU-95A @FF C5.json | 13 +- .../filament/Flashforge TPU-95A @FF C5P.json | 13 +- .../filament/FusRock PAHT-CF @FF C5.json | 13 +- .../filament/FusRock PAHT-CF @FF C5P.json | 13 +- .../filament/FusRock S-Multi @FF C5.json | 13 +- .../filament/FusRock S-Multi @FF C5P.json | 13 +- .../filament/FusRock S-PAHT @FF C5.json | 13 +- .../filament/FusRock S-PAHT @FF C5P.json | 13 +- .../filament/Generic BVOH @FF C5.json | 13 +- .../filament/Generic BVOH @FF C5P.json | 13 +- .../filament/Generic PLA @FF C5.json | 13 +- .../filament/Generic PLA @FF C5P.json | 13 +- .../filament/Generic PLA Silk @FF C5.json | 13 +- .../filament/Generic PLA Silk @FF C5P.json | 13 +- .../filament/Generic TPU-64D @FF C5.json | 13 +- .../filament/Generic TPU-64D @FF C5P.json | 13 +- .../filament/Generic TPU-90A @FF C5.json | 13 +- .../filament/Generic TPU-90A @FF C5P.json | 13 +- .../filament/Generic TPU-95A @FF C5.json | 13 +- .../filament/Generic TPU-95A @FF C5P.json | 13 +- .../Flashforge Creator 5 0.4 nozzle.json | 10 +- .../Flashforge Creator 5 0.6 nozzle.json | 16 +- .../Flashforge Creator 5 0.8 nozzle.json | 17 +- .../Flashforge Creator 5 Pro 0.4 nozzle.json | 11 +- .../Flashforge Creator 5 Pro 0.6 nozzle.json | 17 +- .../Flashforge Creator 5 Pro 0.8 nozzle.json | 17 +- .../process/0.12mm Standard @FF C5.json | 11 +- .../0.18mm Standard @FF C5 0.6 nozzle.json | 11 +- .../process/0.20mm Standard @FF C5.json | 11 +- .../process/0.24mm Standard @FF C5.json | 11 +- .../0.30mm Standard @FF C5 0.6 nozzle.json | 11 +- .../0.32mm Standard @FF C5 0.8 nozzle.json | 11 +- .../0.42mm Standard @FF C5 0.6 nozzle.json | 11 +- .../0.48mm Standard @FF C5 0.8 nozzle.json | 11 +- .../0.4mm Standard @FF C5 0.8 nozzle.json | 11 +- resources/profiles/LH.json | 122 +- resources/profiles/LH/filament/LHS PC CF.json | 13 +- resources/profiles/OrcaFilamentLibrary.json | 606 +-- resources/profiles/Snapmaker.json | 360 +- .../Fiberon ASA-CF08 @Snapmaker U1 base.json | 83 + .../Fiberon ASA-CF08 @Snapmaker U1.json | 18 + .../Fiberon PA12-CF10 @Snapmaker U1 base.json | 80 + .../Fiberon PA12-CF10 @Snapmaker U1.json | 27 + .../Fiberon PA6-CF20 @Snapmaker U1 base.json | 77 + .../Fiberon PA6-CF20 @Snapmaker U1.json | 27 + .../Fiberon PA612-ESD @Snapmaker U1 base.json | 80 + .../Fiberon PA612-ESD @Snapmaker U1.json | 24 + .../Fiberon PETG-ESD @Snapmaker U1 base.json | 77 + .../Fiberon PETG-ESD @Snapmaker U1.json | 24 + .../Fiberon PPS-GF20 @Snapmaker U1 base.json | 92 + .../Fiberon PPS-GF20 @Snapmaker U1.json | 15 + ...=> Panchroma CoPE @Snapmaker U1 base.json} | 44 +- .../Panchroma CoPE @Snapmaker U1.json | 15 + .../Polymaker/Panchroma CoPE @U1.json | 26 - .../Panchroma PLA @Snapmaker U1 base.json | 65 + .../Panchroma PLA @Snapmaker U1.json | 18 + .../Polymaker/Panchroma PLA @U1 base.json | 44 - .../filament/Polymaker/Panchroma PLA @U1.json | 26 - ...roma PLA Celestial @Snapmaker U1 base.json | 65 + ...Panchroma PLA Celestial @Snapmaker U1.json | 15 + .../Panchroma PLA Celestial @U1 base.json | 41 - .../Panchroma PLA Celestial @U1.json | 26 - ...nchroma PLA Galaxy @Snapmaker U1 base.json | 65 + .../Panchroma PLA Galaxy @Snapmaker U1.json | 15 + .../Panchroma PLA Galaxy @U1 base.json | 41 - .../Polymaker/Panchroma PLA Galaxy @U1.json | 26 - ...Panchroma PLA Glow @Snapmaker U1 base.json | 65 + .../Panchroma PLA Glow @Snapmaker U1.json | 15 + .../Panchroma PLA Glow @U1 base.json | 41 - .../Polymaker/Panchroma PLA Glow @U1.json | 26 - ...hroma PLA Luminous @Snapmaker U1 base.json | 65 + .../Panchroma PLA Luminous @Snapmaker U1.json | 15 + .../Panchroma PLA Luminous @U1 base.json | 41 - .../Polymaker/Panchroma PLA Luminous @U1.json | 26 - ...nchroma PLA Marble @Snapmaker U1 base.json | 65 + .../Panchroma PLA Marble @Snapmaker U1.json | 15 + .../Panchroma PLA Marble @U1 base.json | 41 - .../Polymaker/Panchroma PLA Marble @U1.json | 23 - ...anchroma PLA Matte @Snapmaker U1 base.json | 65 + .../Panchroma PLA Matte @Snapmaker U1.json | 15 + .../Panchroma PLA Matte @U1 base.json | 41 - .../Polymaker/Panchroma PLA Matte @U1.json | 23 - ...hroma PLA Metallic @Snapmaker U1 base.json | 65 + .../Panchroma PLA Metallic @Snapmaker U1.json | 15 + .../Panchroma PLA Metallic @U1 base.json | 41 - .../Polymaker/Panchroma PLA Metallic @U1.json | 26 - ...Panchroma PLA Neon @Snapmaker U1 base.json | 65 + .../Panchroma PLA Neon @Snapmaker U1.json | 15 + .../Panchroma PLA Neon @U1 base.json | 41 - .../Polymaker/Panchroma PLA Neon @U1.json | 26 - ...anchroma PLA Satin @Snapmaker U1 base.json | 65 + .../Panchroma PLA Satin @Snapmaker U1.json | 15 + .../Panchroma PLA Satin @U1 base.json | 42 - .../Polymaker/Panchroma PLA Satin @U1.json | 27 - ...Panchroma PLA Silk @Snapmaker U1 base.json | 68 + .../Panchroma PLA Silk @Snapmaker U1.json | 15 + .../Panchroma PLA Silk @U1 base.json | 41 - .../Polymaker/Panchroma PLA Silk @U1.json | 26 - ...roma PLA Starlight @Snapmaker U1 base.json | 65 + ...Panchroma PLA Starlight @Snapmaker U1.json | 15 + .../Panchroma PLA Starlight @U1 base.json | 41 - .../Panchroma PLA Starlight @U1.json | 26 - ...ma PLA Temp Shift @Snapmaker U1 base.json} | 2 +- ...nchroma PLA Temp Shift @Snapmaker U1.json} | 5 +- ...ma PLA Translucent @Snapmaker U1 base.json | 65 + ...nchroma PLA Translucent @Snapmaker U1.json | 15 + .../Panchroma PLA Translucent @U1 base.json | 41 - .../Panchroma PLA Translucent @U1.json | 26 - ...hroma PLA UV Shift @Snapmaker U1 base.json | 65 + .../Panchroma PLA UV Shift @Snapmaker U1.json | 15 + .../Panchroma PLA UV Shift @U1 base.json | 41 - .../Polymaker/Panchroma PLA UV Shift @U1.json | 26 - .../PolyLite CosPLA @Snapmaker U1 base.json | 65 + .../PolyLite CosPLA @Snapmaker U1.json | 14 + .../PolyLite PETG @Snapmaker U1 base.json | 86 + .../PolyLite PETG @Snapmaker U1.json | 105 +- ...e PETG Translucent @Snapmaker U1 base.json | 86 + ...lyLite PETG Translucent @Snapmaker U1.json | 24 + .../PolyLite PLA @Snapmaker U1 base.json | 65 + .../Polymaker/PolyLite PLA @Snapmaker U1.json | 15 + .../Polymaker/PolyLite PLA @U1 base.json | 20 - .../filament/Polymaker/PolyLite PLA @U1.json | 11 - ...olyLite PLA Galaxy @Snapmaker U1 base.json | 65 + .../PolyLite PLA Galaxy @Snapmaker U1.json | 14 + .../PolyLite PLA Glow @Snapmaker U1 base.json | 65 + .../PolyLite PLA Glow @Snapmaker U1.json | 14 + ...yLite PLA Luminous @Snapmaker U1 base.json | 65 + .../PolyLite PLA Luminous @Snapmaker U1.json | 14 + .../PolyLite PLA Neon @Snapmaker U1 base.json | 65 + .../PolyLite PLA Neon @Snapmaker U1.json | 14 + ... PolyLite PLA Pro @Snapmaker U1 base.json} | 2 +- ...on => PolyLite PLA Pro @Snapmaker U1.json} | 5 +- ...e PLA Pro Metallic @Snapmaker U1 base.json | 80 + ...lyLite PLA Pro Metallic @Snapmaker U1.json | 30 + ...Lite PLA Starlight @Snapmaker U1 base.json | 65 + .../PolyLite PLA Starlight @Snapmaker U1.json | 14 + ...te PLA Translucent @Snapmaker U1 base.json | 65 + ...olyLite PLA Translucent @Snapmaker U1.json | 14 + .../PolyTerra PLA @Snapmaker U1 base.json | 65 + .../PolyTerra PLA @Snapmaker U1.json | 15 + .../Polymaker/PolyTerra PLA @U1 base.json | 20 - .../filament/Polymaker/PolyTerra PLA @U1.json | 11 - ...lyTerra PLA Marble @Snapmaker U1 base.json | 65 + .../PolyTerra PLA Marble @Snapmaker U1.json | 14 + .../PolyTerra PLA+ @Snapmaker U1 base.json | 65 + .../PolyTerra PLA+ @Snapmaker U1.json | 14 + ... Polymaker HT-PLA @Snapmaker U1 base.json} | 46 +- .../Polymaker HT-PLA @Snapmaker U1.json | 93 +- .../Polymaker/Polymaker HT-PLA @U1.json | 26 - ...lymaker HT-PLA-GF @Snapmaker U1 base.json} | 46 +- .../Polymaker HT-PLA-GF @Snapmaker U1.json | 93 +- .../Polymaker/Polymaker HT-PLA-GF @U1.json | 26 - .../Polymaker PETG @Snapmaker U1 base.json | 83 + .../Polymaker PETG @Snapmaker U1.json | 101 +- ...ymaker PETG Galaxy @Snapmaker U1 base.json | 83 + .../Polymaker PETG Galaxy @Snapmaker U1.json | 20 + .../Polymaker PLA @Snapmaker U1 base.json | 74 + .../Polymaker PLA @Snapmaker U1.json | 20 + .../Polymaker PLA Pro @Snapmaker U1 base.json | 74 + .../Polymaker PLA Pro @Snapmaker U1.json | 92 +- ...r PLA Pro Metallic @Snapmaker U1 base.json | 74 + ...ymaker PLA Pro Metallic @Snapmaker U1.json | 14 + resources/profiles/Z-Bolt.json | 208 +- resources/profiles/re3D.json | 106 +- 354 files changed, 12942 insertions(+), 7362 deletions(-) create mode 100644 resources/profiles/Anycubic/filament/Polymaker/Fiberon PA6-CF20 @Anycubic Kobra S1.json create mode 100644 resources/profiles/Anycubic/filament/Polymaker/Panchroma PLA @Anycubic Kobra S1.json create mode 100644 resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro @Anycubic Kobra S1.json create mode 100644 resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro Metallic @Anycubic Kobra S1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF10 @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF10 @base.json create mode 100644 resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF20 @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF20 @base.json create mode 100644 resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF25 @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF25 @base.json create mode 100644 resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF15 @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF15 @base.json create mode 100644 resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF17 @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF17 @base.json create mode 100644 resources/profiles/BBL/filament/Polymaker/Fiberon PETG-ESD @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF08 @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF08 @base.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL A1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL A1M.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL P1P.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @base.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL A1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL A1M.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL P1P.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @base.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL A1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL A1M.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL P1P.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @base.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL A1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL A1M.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL P1P.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @base.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL A1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL A1M.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL P1P.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @base.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL A1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL A1M.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL P1P.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @base.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL A1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL A1M.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL P1P.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @base.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL A1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL A1M.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL P1P.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @base.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL A1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL A1M.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL P1P.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA612-ESD @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA612-ESD @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Fiberon PPS-GF20 @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Fiberon PPS-GF20 @Snapmaker U1.json rename resources/profiles/Snapmaker/filament/Polymaker/{Panchroma CoPE @U1 base.json => Panchroma CoPE @Snapmaker U1 base.json} (51%) create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @U1.json rename resources/profiles/Snapmaker/filament/Polymaker/{Panchroma PLA Temp Shift @U1 base.json => Panchroma PLA Temp Shift @Snapmaker U1 base.json} (91%) rename resources/profiles/Snapmaker/filament/Polymaker/{Panchroma PLA Temp Shift @U1.json => Panchroma PLA Temp Shift @Snapmaker U1.json} (68%) create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite CosPLA @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite CosPLA @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Galaxy @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Galaxy @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Glow @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Glow @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Luminous @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Luminous @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Neon @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Neon @Snapmaker U1.json rename resources/profiles/Snapmaker/filament/Polymaker/{PolyLite PLA Pro @U1 base.json => PolyLite PLA Pro @Snapmaker U1 base.json} (92%) rename resources/profiles/Snapmaker/filament/Polymaker/{PolyLite PLA Pro @U1.json => PolyLite PLA Pro @Snapmaker U1.json} (71%) create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro Metallic @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro Metallic @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Starlight @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Starlight @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Translucent @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Translucent @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @Snapmaker U1.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @U1 base.json delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA Marble @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA Marble @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA+ @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA+ @Snapmaker U1.json rename resources/profiles/Snapmaker/filament/Polymaker/{Polymaker HT-PLA @U1 base.json => Polymaker HT-PLA @Snapmaker U1 base.json} (59%) delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @U1.json rename resources/profiles/Snapmaker/filament/Polymaker/{Polymaker HT-PLA-GF @U1 base.json => Polymaker HT-PLA-GF @Snapmaker U1 base.json} (59%) delete mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG Galaxy @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG Galaxy @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA @Snapmaker U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro Metallic @Snapmaker U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro Metallic @Snapmaker U1.json diff --git a/resources/profiles/Anycubic.json b/resources/profiles/Anycubic.json index 789f72f3a1..527247a7e8 100644 --- a/resources/profiles/Anycubic.json +++ b/resources/profiles/Anycubic.json @@ -472,6 +472,10 @@ "name": "Anycubic Generic PA-CF", "sub_path": "filament/Anycubic Generic PA-CF.json" }, + { + "name": "Fiberon PA6-CF20 @Anycubic Kobra S1", + "sub_path": "filament/Polymaker/Fiberon PA6-CF20 @Anycubic Kobra S1.json" + }, { "name": "Anycubic Generic PC", "sub_path": "filament/Anycubic Generic PC.json" @@ -588,6 +592,18 @@ "name": "Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle", "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json" }, + { + "name": "Panchroma PLA @Anycubic Kobra S1", + "sub_path": "filament/Polymaker/Panchroma PLA @Anycubic Kobra S1.json" + }, + { + "name": "Polymaker PLA Pro @Anycubic Kobra S1", + "sub_path": "filament/Polymaker/Polymaker PLA Pro @Anycubic Kobra S1.json" + }, + { + "name": "Polymaker PLA Pro Metallic @Anycubic Kobra S1", + "sub_path": "filament/Polymaker/Polymaker PLA Pro Metallic @Anycubic Kobra S1.json" + }, { "name": "Anycubic Generic PVA", "sub_path": "filament/Anycubic Generic PVA.json" diff --git a/resources/profiles/Anycubic/filament/Polymaker/Fiberon PA6-CF20 @Anycubic Kobra S1.json b/resources/profiles/Anycubic/filament/Polymaker/Fiberon PA6-CF20 @Anycubic Kobra S1.json new file mode 100644 index 0000000000..96fbc6f25b --- /dev/null +++ b/resources/profiles/Anycubic/filament/Polymaker/Fiberon PA6-CF20 @Anycubic Kobra S1.json @@ -0,0 +1,81 @@ +{ + "type": "filament", + "name": "Fiberon PA6-CF20 @Anycubic Kobra S1", + "inherits": "fdm_filament_pa", + "from": "system", + "setting_id": "GFSL57_AC", + "filament_id": "GFL57", + "instantiation": "true", + "compatible_printers": [ + "Anycubic Kobra S1 0.4 nozzle" + ], + "filament_vendor": [ + "Polymaker" + ], + "filament_type": [ + "PA6-CF" + ], + "eng_plate_temp": [ + "40" + ], + "hot_plate_temp": [ + "40" + ], + "textured_plate_temp": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "40" + ], + "hot_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp_initial_layer": [ + "40" + ], + "overhang_fan_speed": [ + "100" + ], + "filament_flow_ratio": [ + "1.03" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "fan_cooling_layer_time": [ + "30" + ], + "filament_cost": [ + "79.98" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "7.5" + ], + "filament_retraction_length": [ + "1.0" + ], + "filament_z_hop": [ + "0.0" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "fan_max_speed": [ + "30" + ], + "slow_down_layer_time": [ + "6" + ], + "nozzle_temperature": [ + "300" + ], + "temperature_vitrification": [ + "74.2" + ], + "nozzle_temperature_range_low": [ + "280" + ] +} diff --git a/resources/profiles/Anycubic/filament/Polymaker/Panchroma PLA @Anycubic Kobra S1.json b/resources/profiles/Anycubic/filament/Polymaker/Panchroma PLA @Anycubic Kobra S1.json new file mode 100644 index 0000000000..b9a9267260 --- /dev/null +++ b/resources/profiles/Anycubic/filament/Polymaker/Panchroma PLA @Anycubic Kobra S1.json @@ -0,0 +1,70 @@ +{ + "type": "filament", + "name": "Panchroma PLA @Anycubic Kobra S1", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "GFSPM001_AC", + "filament_id": "GFPM001", + "instantiation": "true", + "compatible_printers": [ + "Anycubic Kobra S1 0.4 nozzle" + ], + "filament_vendor": [ + "Polymaker" + ], + "filament_type": [ + "PLA" + ], + "cool_plate_temp": [ + "50" + ], + "eng_plate_temp": [ + "50" + ], + "hot_plate_temp": [ + "50" + ], + "textured_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_flow_ratio": [ + "0.88" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.32" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "slow_down_min_speed": [ + "5" + ], + "slow_down_layer_time": [ + "10" + ], + "temperature_vitrification": [ + "62.5" + ], + "additional_cooling_fan_speed": [ + "0" + ], + + "enable_pressure_advance": [ + "1" + ] +} diff --git a/resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro @Anycubic Kobra S1.json b/resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro @Anycubic Kobra S1.json new file mode 100644 index 0000000000..54e1323cac --- /dev/null +++ b/resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro @Anycubic Kobra S1.json @@ -0,0 +1,66 @@ +{ + "type": "filament", + "name": "Polymaker PLA Pro @Anycubic Kobra S1", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "GFSL79_AC", + "filament_id": "GFL79", + "instantiation": "true", + "compatible_printers": [ + "Anycubic Kobra S1 0.4 nozzle" + ], + "filament_vendor": [ + "Polymaker" + ], + "filament_type": [ + "PLA" + ], + "cool_plate_temp": [ + "50" + ], + "eng_plate_temp": [ + "50" + ], + "hot_plate_temp": [ + "50" + ], + "textured_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_flow_ratio": [ + "0.85" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.23" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "slow_down_min_speed": [ + "5" + ], + "slow_down_layer_time": [ + "10" + ], + "temperature_vitrification": [ + "55" + ], + "additional_cooling_fan_speed": [ + "0" + ] +} diff --git a/resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro Metallic @Anycubic Kobra S1.json b/resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro Metallic @Anycubic Kobra S1.json new file mode 100644 index 0000000000..abdc6a6e1d --- /dev/null +++ b/resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro Metallic @Anycubic Kobra S1.json @@ -0,0 +1,66 @@ +{ + "type": "filament", + "name": "Polymaker PLA Pro Metallic @Anycubic Kobra S1", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "GFSL80_AC", + "filament_id": "GFL80", + "instantiation": "true", + "compatible_printers": [ + "Anycubic Kobra S1 0.4 nozzle" + ], + "filament_vendor": [ + "Polymaker" + ], + "filament_type": [ + "PLA" + ], + "cool_plate_temp": [ + "50" + ], + "eng_plate_temp": [ + "50" + ], + "hot_plate_temp": [ + "50" + ], + "textured_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_flow_ratio": [ + "0.85" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.23" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "slow_down_min_speed": [ + "5" + ], + "slow_down_layer_time": [ + "10" + ], + "temperature_vitrification": [ + "55" + ], + "additional_cooling_fan_speed": [ + "0" + ] +} diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index d110bda4b2..f24d6d8caf 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -243,6 +243,10 @@ "name": "0.08mm Extra Fine @BBL H2DP 0.2 nozzle", "sub_path": "process/0.08mm Extra Fine @BBL H2DP 0.2 nozzle.json" }, + { + "name": "0.08mm High Quality @BBL X2D 0.2 nozzle", + "sub_path": "process/0.08mm High Quality @BBL X2D 0.2 nozzle.json" + }, { "name": "0.08mm Extra Fine @BBL H2D", "sub_path": "process/0.08mm Extra Fine @BBL H2D.json" @@ -251,6 +255,10 @@ "name": "0.08mm Extra Fine @BBL H2DP", "sub_path": "process/0.08mm Extra Fine @BBL H2DP.json" }, + { + "name": "0.08mm High Quality @BBL X2D", + "sub_path": "process/0.08mm High Quality @BBL X2D.json" + }, { "name": "0.10mm Standard @BBL H2D 0.2 nozzle", "sub_path": "process/0.10mm Standard @BBL H2D 0.2 nozzle.json" @@ -259,6 +267,10 @@ "name": "0.10mm Standard @BBL H2DP 0.2 nozzle", "sub_path": "process/0.10mm Standard @BBL H2DP 0.2 nozzle.json" }, + { + "name": "0.10mm Standard @BBL X2D 0.2 nozzle", + "sub_path": "process/0.10mm Standard @BBL X2D 0.2 nozzle.json" + }, { "name": "0.12mm Balanced Quality @BBL H2D 0.2 nozzle", "sub_path": "process/0.12mm Balanced Quality @BBL H2D 0.2 nozzle.json" @@ -267,6 +279,10 @@ "name": "0.12mm Balanced Quality @BBL H2DP 0.2 nozzle", "sub_path": "process/0.12mm Balanced Quality @BBL H2DP 0.2 nozzle.json" }, + { + "name": "0.12mm Balanced Quality @BBL X2D 0.2 nozzle", + "sub_path": "process/0.12mm Balanced Quality @BBL X2D 0.2 nozzle.json" + }, { "name": "0.12mm Fine @BBL H2D", "sub_path": "process/0.12mm Fine @BBL H2D.json" @@ -275,6 +291,10 @@ "name": "0.12mm Fine @BBL H2DP", "sub_path": "process/0.12mm Fine @BBL H2DP.json" }, + { + "name": "0.12mm High Quality @BBL X2D", + "sub_path": "process/0.12mm High Quality @BBL X2D.json" + }, { "name": "0.16mm Balanced Quality @BBL H2D", "sub_path": "process/0.16mm Balanced Quality @BBL H2D.json" @@ -283,6 +303,10 @@ "name": "0.16mm Balanced Quality @BBL H2DP", "sub_path": "process/0.16mm Balanced Quality @BBL H2DP.json" }, + { + "name": "0.16mm High Quality @BBL X2D", + "sub_path": "process/0.16mm High Quality @BBL X2D.json" + }, { "name": "0.16mm Standard @BBL H2D", "sub_path": "process/0.16mm Standard @BBL H2D.json" @@ -291,6 +315,10 @@ "name": "0.16mm Standard @BBL H2DP", "sub_path": "process/0.16mm Standard @BBL H2DP.json" }, + { + "name": "0.16mm Standard @BBL X2D", + "sub_path": "process/0.16mm Standard @BBL X2D.json" + }, { "name": "0.18mm Balanced Quality @BBL H2D 0.6 nozzle", "sub_path": "process/0.18mm Balanced Quality @BBL H2D 0.6 nozzle.json" @@ -299,6 +327,10 @@ "name": "0.18mm Balanced Quality @BBL H2DP 0.6 nozzle", "sub_path": "process/0.18mm Balanced Quality @BBL H2DP 0.6 nozzle.json" }, + { + "name": "0.18mm Balanced Quality @BBL X2D 0.6 nozzle", + "sub_path": "process/0.18mm Balanced Quality @BBL X2D 0.6 nozzle.json" + }, { "name": "0.20mm Balanced Strength @BBL H2D", "sub_path": "process/0.20mm Balanced Strength @BBL H2D.json" @@ -307,6 +339,10 @@ "name": "0.20mm Balanced Strength @BBL H2DP", "sub_path": "process/0.20mm Balanced Strength @BBL H2DP.json" }, + { + "name": "0.20mm High Quality @BBL X2D", + "sub_path": "process/0.20mm High Quality @BBL X2D.json" + }, { "name": "0.20mm Standard @BBL H2D", "sub_path": "process/0.20mm Standard @BBL H2D.json" @@ -315,6 +351,10 @@ "name": "0.20mm Standard @BBL H2DP", "sub_path": "process/0.20mm Standard @BBL H2DP.json" }, + { + "name": "0.20mm Standard @BBL X2D", + "sub_path": "process/0.20mm Standard @BBL X2D.json" + }, { "name": "0.24mm Standard @BBL H2D", "sub_path": "process/0.24mm Standard @BBL H2D.json" @@ -323,6 +363,14 @@ "name": "0.24mm Standard @BBL H2DP", "sub_path": "process/0.24mm Standard @BBL H2DP.json" }, + { + "name": "0.24mm Standard @BBL X2D", + "sub_path": "process/0.24mm Standard @BBL X2D.json" + }, + { + "name": "0.24mm Balanced Quality @BBL X2D 0.6 nozzle", + "sub_path": "process/0.24mm Balanced Quality @BBL X2D 0.6 nozzle.json" + }, { "name": "0.24mm Balanced Strength @BBL H2D 0.6 nozzle", "sub_path": "process/0.24mm Balanced Strength @BBL H2D 0.6 nozzle.json" @@ -339,6 +387,10 @@ "name": "0.24mm Balanced Quality @BBL H2DP 0.8 nozzle", "sub_path": "process/0.24mm Balanced Quality @BBL H2DP 0.8 nozzle.json" }, + { + "name": "0.24mm Balanced Quality @BBL X2D 0.8 nozzle", + "sub_path": "process/0.24mm Balanced Quality @BBL X2D 0.8 nozzle.json" + }, { "name": "0.30mm Standard @BBL H2D 0.6 nozzle", "sub_path": "process/0.30mm Standard @BBL H2D 0.6 nozzle.json" @@ -347,6 +399,14 @@ "name": "0.30mm Standard @BBL H2DP 0.6 nozzle", "sub_path": "process/0.30mm Standard @BBL H2DP 0.6 nozzle.json" }, + { + "name": "0.30mm Standard @BBL X2D 0.6 nozzle", + "sub_path": "process/0.30mm Standard @BBL X2D 0.6 nozzle.json" + }, + { + "name": "0.32mm Balanced Quality @BBL X2D 0.8 nozzle", + "sub_path": "process/0.32mm Balanced Quality @BBL X2D 0.8 nozzle.json" + }, { "name": "0.32mm Balanced Strength @BBL H2D 0.8 nozzle", "sub_path": "process/0.32mm Balanced Strength @BBL H2D 0.8 nozzle.json" @@ -363,6 +423,10 @@ "name": "0.40mm Standard @BBL H2DP 0.8 nozzle", "sub_path": "process/0.40mm Standard @BBL H2DP 0.8 nozzle.json" }, + { + "name": "0.40mm Standard @BBL X2D 0.8 nozzle", + "sub_path": "process/0.40mm Standard @BBL X2D 0.8 nozzle.json" + }, { "name": "0.06mm Fine @BBL A1 0.2 nozzle", "sub_path": "process/0.06mm Fine @BBL A1 0.2 nozzle.json" @@ -962,70 +1026,6 @@ { "name": "0.56mm Standard @BBL X1C 0.8 nozzle", "sub_path": "process/0.56mm Standard @BBL X1C 0.8 nozzle.json" - }, - { - "name": "0.08mm High Quality @BBL X2D 0.2 nozzle", - "sub_path": "process/0.08mm High Quality @BBL X2D 0.2 nozzle.json" - }, - { - "name": "0.08mm High Quality @BBL X2D", - "sub_path": "process/0.08mm High Quality @BBL X2D.json" - }, - { - "name": "0.10mm Standard @BBL X2D 0.2 nozzle", - "sub_path": "process/0.10mm Standard @BBL X2D 0.2 nozzle.json" - }, - { - "name": "0.12mm Balanced Quality @BBL X2D 0.2 nozzle", - "sub_path": "process/0.12mm Balanced Quality @BBL X2D 0.2 nozzle.json" - }, - { - "name": "0.12mm High Quality @BBL X2D", - "sub_path": "process/0.12mm High Quality @BBL X2D.json" - }, - { - "name": "0.16mm High Quality @BBL X2D", - "sub_path": "process/0.16mm High Quality @BBL X2D.json" - }, - { - "name": "0.16mm Standard @BBL X2D", - "sub_path": "process/0.16mm Standard @BBL X2D.json" - }, - { - "name": "0.18mm Balanced Quality @BBL X2D 0.6 nozzle", - "sub_path": "process/0.18mm Balanced Quality @BBL X2D 0.6 nozzle.json" - }, - { - "name": "0.20mm High Quality @BBL X2D", - "sub_path": "process/0.20mm High Quality @BBL X2D.json" - }, - { - "name": "0.20mm Standard @BBL X2D", - "sub_path": "process/0.20mm Standard @BBL X2D.json" - }, - { - "name": "0.24mm Standard @BBL X2D", - "sub_path": "process/0.24mm Standard @BBL X2D.json" - }, - { - "name": "0.24mm Balanced Quality @BBL X2D 0.6 nozzle", - "sub_path": "process/0.24mm Balanced Quality @BBL X2D 0.6 nozzle.json" - }, - { - "name": "0.24mm Balanced Quality @BBL X2D 0.8 nozzle", - "sub_path": "process/0.24mm Balanced Quality @BBL X2D 0.8 nozzle.json" - }, - { - "name": "0.30mm Standard @BBL X2D 0.6 nozzle", - "sub_path": "process/0.30mm Standard @BBL X2D 0.6 nozzle.json" - }, - { - "name": "0.32mm Balanced Quality @BBL X2D 0.8 nozzle", - "sub_path": "process/0.32mm Balanced Quality @BBL X2D 0.8 nozzle.json" - }, - { - "name": "0.40mm Standard @BBL X2D 0.8 nozzle", - "sub_path": "process/0.40mm Standard @BBL X2D 0.8 nozzle.json" } ], "filament_list": [ @@ -1197,6 +1197,10 @@ "name": "FusRock ABS-GF @BBL X1C", "sub_path": "filament/FusRock/FusRock ABS-GF @BBL X1C.json" }, + { + "name": "BETA ABS @base", + "sub_path": "filament/BETA/BETA ABS @base.json" + }, { "name": "Bambu ABS @base", "sub_path": "filament/Bambu ABS @base.json" @@ -1217,6 +1221,10 @@ "name": "PolyLite ABS @base", "sub_path": "filament/Polymaker/PolyLite ABS @base.json" }, + { + "name": "BETA ASA @base", + "sub_path": "filament/BETA/BETA ASA @base.json" + }, { "name": "Bambu ASA @base", "sub_path": "filament/Bambu ASA @base.json" @@ -1245,10 +1253,18 @@ "name": "Generic EVA @base", "sub_path": "filament/Generic EVA @base.json" }, + { + "name": "BETA HIPS @base", + "sub_path": "filament/BETA/BETA HIPS @base.json" + }, { "name": "Generic HIPS @base", "sub_path": "filament/Generic HIPS @base.json" }, + { + "name": "BETA PAHT-CF @base", + "sub_path": "filament/BETA/BETA PAHT-CF @base.json" + }, { "name": "Bambu PA-CF @base", "sub_path": "filament/Bambu PA-CF @base.json" @@ -1277,18 +1293,34 @@ "name": "Fiberon PA12-CF @base", "sub_path": "filament/Polymaker/Fiberon PA12-CF @base.json" }, + { + "name": "Fiberon PA12-CF10 @base", + "sub_path": "filament/Polymaker/Fiberon PA12-CF10 @base.json" + }, { "name": "Fiberon PA6-CF @base", "sub_path": "filament/Polymaker/Fiberon PA6-CF @base.json" }, + { + "name": "Fiberon PA6-CF20 @base", + "sub_path": "filament/Polymaker/Fiberon PA6-CF20 @base.json" + }, { "name": "Fiberon PA6-GF @base", "sub_path": "filament/Polymaker/Fiberon PA6-GF @base.json" }, + { + "name": "Fiberon PA6-GF25 @base", + "sub_path": "filament/Polymaker/Fiberon PA6-GF25 @base.json" + }, { "name": "Fiberon PA612-CF @base", "sub_path": "filament/Polymaker/Fiberon PA612-CF @base.json" }, + { + "name": "Fiberon PA612-CF15 @base", + "sub_path": "filament/Polymaker/Fiberon PA612-CF15 @base.json" + }, { "name": "Generic PA @base", "sub_path": "filament/Generic PA @base.json" @@ -1321,6 +1353,62 @@ "name": "Generic PE-CF @base", "sub_path": "filament/Generic PE-CF @base.json" }, + { + "name": "BETA PETG @base", + "sub_path": "filament/BETA/BETA PETG @base.json" + }, + { + "name": "BETA PETG Fluorescence @base", + "sub_path": "filament/BETA/BETA PETG Fluorescence @base.json" + }, + { + "name": "BETA PETG Glitter @base", + "sub_path": "filament/BETA/BETA PETG Glitter @base.json" + }, + { + "name": "BETA PETG Glow @base", + "sub_path": "filament/BETA/BETA PETG Glow @base.json" + }, + { + "name": "BETA PETG Gradient @base", + "sub_path": "filament/BETA/BETA PETG Gradient @base.json" + }, + { + "name": "BETA PETG HF @base", + "sub_path": "filament/BETA/BETA PETG HF @base.json" + }, + { + "name": "BETA PETG Heat Color Change @base", + "sub_path": "filament/BETA/BETA PETG Heat Color Change @base.json" + }, + { + "name": "BETA PETG Marble @base", + "sub_path": "filament/BETA/BETA PETG Marble @base.json" + }, + { + "name": "BETA PETG Matte @base", + "sub_path": "filament/BETA/BETA PETG Matte @base.json" + }, + { + "name": "BETA PETG Metallic @base", + "sub_path": "filament/BETA/BETA PETG Metallic @base.json" + }, + { + "name": "BETA PETG Transparent @base", + "sub_path": "filament/BETA/BETA PETG Transparent @base.json" + }, + { + "name": "BETA PETG UV Color Change @base", + "sub_path": "filament/BETA/BETA PETG UV Color Change @base.json" + }, + { + "name": "BETA PETG-CF @base", + "sub_path": "filament/BETA/BETA PETG-CF @base.json" + }, + { + "name": "BETA PETG-GF @base", + "sub_path": "filament/BETA/BETA PETG-GF @base.json" + }, { "name": "Bambu PET-CF @base", "sub_path": "filament/Bambu PET-CF @base.json" @@ -1345,6 +1433,10 @@ "name": "Fiberon PET-CF @base", "sub_path": "filament/Polymaker/Fiberon PET-CF @base.json" }, + { + "name": "Fiberon PET-CF17 @base", + "sub_path": "filament/Polymaker/Fiberon PET-CF17 @base.json" + }, { "name": "Fiberon PETG-ESD @base", "sub_path": "filament/Polymaker/Fiberon PETG-ESD @base.json" @@ -1353,6 +1445,10 @@ "name": "Fiberon PETG-rCF @base", "sub_path": "filament/Polymaker/Fiberon PETG-rCF @base.json" }, + { + "name": "Fiberon PETG-rCF08 @base", + "sub_path": "filament/Polymaker/Fiberon PETG-rCF08 @base.json" + }, { "name": "Generic PETG @base", "sub_path": "filament/Generic PETG @base.json" @@ -1377,6 +1473,90 @@ "name": "Generic PHA @base", "sub_path": "filament/Generic PHA @base.json" }, + { + "name": "BETA PLA Basic @base", + "sub_path": "filament/BETA/BETA PLA Basic @base.json" + }, + { + "name": "BETA PLA Chameleon @base", + "sub_path": "filament/BETA/BETA PLA Chameleon @base.json" + }, + { + "name": "BETA PLA Fluorescence @base", + "sub_path": "filament/BETA/BETA PLA Fluorescence @base.json" + }, + { + "name": "BETA PLA Glitter @base", + "sub_path": "filament/BETA/BETA PLA Glitter @base.json" + }, + { + "name": "BETA PLA Glow @base", + "sub_path": "filament/BETA/BETA PLA Glow @base.json" + }, + { + "name": "BETA PLA Gradient @base", + "sub_path": "filament/BETA/BETA PLA Gradient @base.json" + }, + { + "name": "BETA PLA Heat Color Change @base", + "sub_path": "filament/BETA/BETA PLA Heat Color Change @base.json" + }, + { + "name": "BETA PLA High Speed @base", + "sub_path": "filament/BETA/BETA PLA High Speed @base.json" + }, + { + "name": "BETA PLA High Temp @base", + "sub_path": "filament/BETA/BETA PLA High Temp @base.json" + }, + { + "name": "BETA PLA Marble @base", + "sub_path": "filament/BETA/BETA PLA Marble @base.json" + }, + { + "name": "BETA PLA Matte @base", + "sub_path": "filament/BETA/BETA PLA Matte @base.json" + }, + { + "name": "BETA PLA Metal @base", + "sub_path": "filament/BETA/BETA PLA Metal @base.json" + }, + { + "name": "BETA PLA Metallic @base", + "sub_path": "filament/BETA/BETA PLA Metallic @base.json" + }, + { + "name": "BETA PLA PRO @base", + "sub_path": "filament/BETA/BETA PLA PRO @base.json" + }, + { + "name": "BETA PLA Silk @base", + "sub_path": "filament/BETA/BETA PLA Silk @base.json" + }, + { + "name": "BETA PLA Silk+ @base", + "sub_path": "filament/BETA/BETA PLA Silk+ @base.json" + }, + { + "name": "BETA PLA Transparent @base", + "sub_path": "filament/BETA/BETA PLA Transparent @base.json" + }, + { + "name": "BETA PLA UV Color Change @base", + "sub_path": "filament/BETA/BETA PLA UV Color Change @base.json" + }, + { + "name": "BETA PLA Wood @base", + "sub_path": "filament/BETA/BETA PLA Wood @base.json" + }, + { + "name": "BETA PLA Youth @base", + "sub_path": "filament/BETA/BETA PLA Youth @base.json" + }, + { + "name": "BETA PLA-CF @base", + "sub_path": "filament/BETA/BETA PLA-CF @base.json" + }, { "name": "Bambu PLA Aero @base", "sub_path": "filament/Bambu PLA Aero @base.json" @@ -1553,18 +1733,54 @@ "name": "Panchroma PLA UV Shift @base", "sub_path": "filament/Polymaker/Panchroma PLA UV Shift @base.json" }, + { + "name": "PolyLite CosPLA @base", + "sub_path": "filament/Polymaker/PolyLite CosPLA @base.json" + }, { "name": "PolyLite PLA @base", "sub_path": "filament/Polymaker/PolyLite PLA @base.json" }, + { + "name": "PolyLite PLA Galaxy @base", + "sub_path": "filament/Polymaker/PolyLite PLA Galaxy @base.json" + }, + { + "name": "PolyLite PLA Glow @base", + "sub_path": "filament/Polymaker/PolyLite PLA Glow @base.json" + }, + { + "name": "PolyLite PLA Luminous @base", + "sub_path": "filament/Polymaker/PolyLite PLA Luminous @base.json" + }, + { + "name": "PolyLite PLA Neon @base", + "sub_path": "filament/Polymaker/PolyLite PLA Neon @base.json" + }, { "name": "PolyLite PLA Pro @base", "sub_path": "filament/Polymaker/PolyLite PLA Pro @base.json" }, + { + "name": "PolyLite PLA Starlight @base", + "sub_path": "filament/Polymaker/PolyLite PLA Starlight @base.json" + }, + { + "name": "PolyLite PLA Translucent @base", + "sub_path": "filament/Polymaker/PolyLite PLA Translucent @base.json" + }, { "name": "PolyTerra PLA @base", "sub_path": "filament/Polymaker/PolyTerra PLA @base.json" }, + { + "name": "PolyTerra PLA Marble @base", + "sub_path": "filament/Polymaker/PolyTerra PLA Marble @base.json" + }, + { + "name": "PolyTerra PLA+ @base", + "sub_path": "filament/Polymaker/PolyTerra PLA+ @base.json" + }, { "name": "Polymaker HT-PLA @base", "sub_path": "filament/Polymaker/Polymaker HT-PLA @base.json" @@ -1649,6 +1865,26 @@ "name": "Generic SBS @base", "sub_path": "filament/Generic SBS @base.json" }, + { + "name": "BETA PEBA 90A @base", + "sub_path": "filament/BETA/BETA PEBA 90A @base.json" + }, + { + "name": "BETA TPU 90A @base", + "sub_path": "filament/BETA/BETA TPU 90A @base.json" + }, + { + "name": "BETA TPU 95A @base", + "sub_path": "filament/BETA/BETA TPU 95A @base.json" + }, + { + "name": "BETA TPU 98A @base", + "sub_path": "filament/BETA/BETA TPU 98A @base.json" + }, + { + "name": "BETA TPU Matte @base", + "sub_path": "filament/BETA/BETA TPU Matte @base.json" + }, { "name": "Bambu TPU 85A @base", "sub_path": "filament/Bambu TPU 85A @base.json" @@ -1677,6 +1913,22 @@ "name": "Generic TPU for AMS @base", "sub_path": "filament/Generic TPU for AMS @base.json" }, + { + "name": "BETA ABS @BBL A1", + "sub_path": "filament/BETA/BETA ABS @BBL A1.json" + }, + { + "name": "BETA ABS @BBL H2D", + "sub_path": "filament/BETA/BETA ABS @BBL H2D.json" + }, + { + "name": "BETA ABS @BBL P1P", + "sub_path": "filament/BETA/BETA ABS @BBL P1P.json" + }, + { + "name": "BETA ABS @BBL X1C", + "sub_path": "filament/BETA/BETA ABS @BBL X1C.json" + }, { "name": "Bambu ABS @BBL A1", "sub_path": "filament/Bambu ABS @BBL A1.json" @@ -1781,6 +2033,22 @@ "name": "Bambu ABS @BBL X1E 0.8 nozzle", "sub_path": "filament/Bambu ABS @BBL X1E 0.8 nozzle.json" }, + { + "name": "Bambu ABS @BBL X2D", + "sub_path": "filament/Bambu ABS @BBL X2D.json" + }, + { + "name": "Bambu ABS @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu ABS @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu ABS @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu ABS @BBL X2D 0.4 nozzle.json" + }, + { + "name": "Bambu ABS @BBL X2D 0.8 nozzle", + "sub_path": "filament/Bambu ABS @BBL X2D 0.8 nozzle.json" + }, { "name": "Bambu ABS-GF @BBL A1", "sub_path": "filament/Bambu ABS-GF @BBL A1.json" @@ -1809,6 +2077,14 @@ "name": "Bambu ABS-GF @BBL X1C", "sub_path": "filament/Bambu ABS-GF @BBL X1C.json" }, + { + "name": "Bambu ABS-GF @BBL X2D", + "sub_path": "filament/Bambu ABS-GF @BBL X2D.json" + }, + { + "name": "Bambu ABS-GF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu ABS-GF @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu Support for ABS @BBL A1", "sub_path": "filament/Bambu Support for ABS @BBL A1.json" @@ -1833,6 +2109,14 @@ "name": "Bambu Support for ABS @BBL X1C", "sub_path": "filament/Bambu Support for ABS @BBL X1C.json" }, + { + "name": "Bambu Support for ABS @BBL X2D", + "sub_path": "filament/Bambu Support for ABS @BBL X2D.json" + }, + { + "name": "Bambu Support for ABS @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu Support for ABS @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic ABS", "sub_path": "filament/Generic ABS.json" @@ -1881,6 +2165,18 @@ "name": "Generic ABS @BBL P2S 0.2 nozzle", "sub_path": "filament/Generic ABS @BBL P2S 0.2 nozzle.json" }, + { + "name": "Generic ABS @BBL X2D", + "sub_path": "filament/Generic ABS @BBL X2D.json" + }, + { + "name": "Generic ABS @BBL X2D 0.2 nozzle", + "sub_path": "filament/Generic ABS @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Generic ABS @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic ABS @BBL X2D 0.4 nozzle.json" + }, { "name": "PolyLite ABS @BBL A1", "sub_path": "filament/Polymaker/PolyLite ABS @BBL A1.json" @@ -1921,6 +2217,18 @@ "name": "PolyLite ABS @BBL X1E 0.2 nozzle", "sub_path": "filament/Polymaker/PolyLite ABS @BBL X1E 0.2 nozzle.json" }, + { + "name": "BETA ASA @BBL A1 0.4 nozzle", + "sub_path": "filament/BETA/BETA ASA @BBL A1 0.4 nozzle.json" + }, + { + "name": "BETA ASA @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA ASA @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA ASA @BBL X1C 0.4 nozzle", + "sub_path": "filament/BETA/BETA ASA @BBL X1C 0.4 nozzle.json" + }, { "name": "Bambu ASA @BBL A1 0.2 nozzle", "sub_path": "filament/Bambu ASA @BBL A1 0.2 nozzle.json" @@ -2029,6 +2337,18 @@ "name": "Bambu ASA @BBL X1E 0.4 nozzle", "sub_path": "filament/Bambu ASA @BBL X1E 0.4 nozzle.json" }, + { + "name": "Bambu ASA @BBL X2D", + "sub_path": "filament/Bambu ASA @BBL X2D.json" + }, + { + "name": "Bambu ASA @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu ASA @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu ASA @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu ASA @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu ASA-Aero @BBL A1", "sub_path": "filament/Bambu ASA-Aero @BBL A1.json" @@ -2057,6 +2377,14 @@ "name": "Bambu ASA-Aero @BBL X1C", "sub_path": "filament/Bambu ASA-Aero @BBL X1C.json" }, + { + "name": "Bambu ASA-Aero @BBL X2D", + "sub_path": "filament/Bambu ASA-Aero @BBL X2D.json" + }, + { + "name": "Bambu ASA-Aero @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu ASA-Aero @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu ASA-CF @BBL A1", "sub_path": "filament/Bambu ASA-CF @BBL A1.json" @@ -2109,6 +2437,14 @@ "name": "Bambu ASA-CF @BBL X1C 0.6 nozzle", "sub_path": "filament/Bambu ASA-CF @BBL X1C 0.6 nozzle.json" }, + { + "name": "Bambu ASA-CF @BBL X2D", + "sub_path": "filament/Bambu ASA-CF @BBL X2D.json" + }, + { + "name": "Bambu ASA-CF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu ASA-CF @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic ASA", "sub_path": "filament/Generic ASA.json" @@ -2157,6 +2493,18 @@ "name": "Generic ASA @BBL P2S 0.2 nozzle", "sub_path": "filament/Generic ASA @BBL P2S 0.2 nozzle.json" }, + { + "name": "Generic ASA @BBL X2D", + "sub_path": "filament/Generic ASA @BBL X2D.json" + }, + { + "name": "Generic ASA @BBL X2D 0.2 nozzle", + "sub_path": "filament/Generic ASA @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Generic ASA @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic ASA @BBL X2D 0.4 nozzle.json" + }, { "name": "PolyLite ASA @BBL A1", "sub_path": "filament/Polymaker/PolyLite ASA @BBL A1.json" @@ -2221,6 +2569,14 @@ "name": "Generic BVOH @BBL X1C", "sub_path": "filament/Generic BVOH @BBL X1C.json" }, + { + "name": "Generic BVOH @BBL X2D", + "sub_path": "filament/Generic BVOH @BBL X2D.json" + }, + { + "name": "Generic BVOH @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic BVOH @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic EVA @BBL A1", "sub_path": "filament/Generic EVA @BBL A1.json" @@ -2249,6 +2605,22 @@ "name": "Generic EVA @BBL X1C", "sub_path": "filament/Generic EVA @BBL X1C.json" }, + { + "name": "Generic EVA @BBL X2D", + "sub_path": "filament/Generic EVA @BBL X2D.json" + }, + { + "name": "Generic EVA @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic EVA @BBL X2D 0.4 nozzle.json" + }, + { + "name": "BETA HIPS @BBL H2D", + "sub_path": "filament/BETA/BETA HIPS @BBL H2D.json" + }, + { + "name": "BETA HIPS @BBL X1C", + "sub_path": "filament/BETA/BETA HIPS @BBL X1C.json" + }, { "name": "Generic HIPS @BBL A1", "sub_path": "filament/Generic HIPS @BBL A1.json" @@ -2305,6 +2677,30 @@ "name": "Generic HIPS @BBL X1C 0.2 nozzle", "sub_path": "filament/Generic HIPS @BBL X1C 0.2 nozzle.json" }, + { + "name": "Generic HIPS @BBL X2D", + "sub_path": "filament/Generic HIPS @BBL X2D.json" + }, + { + "name": "Generic HIPS @BBL X2D 0.2 nozzle", + "sub_path": "filament/Generic HIPS @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Generic HIPS @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic HIPS @BBL X2D 0.4 nozzle.json" + }, + { + "name": "BETA PAHT-CF @BBL H2D", + "sub_path": "filament/BETA/BETA PAHT-CF @BBL H2D.json" + }, + { + "name": "BETA PAHT-CF @BBL P1P", + "sub_path": "filament/BETA/BETA PAHT-CF @BBL P1P.json" + }, + { + "name": "BETA PAHT-CF @BBL X1C", + "sub_path": "filament/BETA/BETA PAHT-CF @BBL X1C.json" + }, { "name": "Bambu PA-CF @BBL A1", "sub_path": "filament/Bambu PA-CF @BBL A1.json" @@ -2337,6 +2733,14 @@ "name": "Bambu PA-CF @BBL X1E", "sub_path": "filament/Bambu PA-CF @BBL X1E.json" }, + { + "name": "Bambu PA-CF @BBL X2D", + "sub_path": "filament/Bambu PA-CF @BBL X2D.json" + }, + { + "name": "Bambu PA-CF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PA-CF @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PA6-CF @BBL A1", "sub_path": "filament/Bambu PA6-CF @BBL A1.json" @@ -2365,6 +2769,14 @@ "name": "Bambu PA6-CF @BBL X1E", "sub_path": "filament/Bambu PA6-CF @BBL X1E.json" }, + { + "name": "Bambu PA6-CF @BBL X2D", + "sub_path": "filament/Bambu PA6-CF @BBL X2D.json" + }, + { + "name": "Bambu PA6-CF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PA6-CF @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PA6-GF @BBL A1", "sub_path": "filament/Bambu PA6-GF @BBL A1.json" @@ -2393,6 +2805,14 @@ "name": "Bambu PA6-GF @BBL X1C", "sub_path": "filament/Bambu PA6-GF @BBL X1C.json" }, + { + "name": "Bambu PA6-GF @BBL X2D", + "sub_path": "filament/Bambu PA6-GF @BBL X2D.json" + }, + { + "name": "Bambu PA6-GF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PA6-GF @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PAHT-CF @BBL A1", "sub_path": "filament/Bambu PAHT-CF @BBL A1.json" @@ -2421,6 +2841,14 @@ "name": "Bambu PAHT-CF @BBL X1C", "sub_path": "filament/Bambu PAHT-CF @BBL X1C.json" }, + { + "name": "Bambu PAHT-CF @BBL X2D", + "sub_path": "filament/Bambu PAHT-CF @BBL X2D.json" + }, + { + "name": "Bambu PAHT-CF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PAHT-CF @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu Support For PA/PET @BBL A1", "sub_path": "filament/Bambu Support For PA PET @BBL A1.json" @@ -2449,6 +2877,14 @@ "name": "Bambu Support For PA/PET @BBL X1C", "sub_path": "filament/Bambu Support For PA PET @BBL X1C.json" }, + { + "name": "Bambu Support For PA/PET @BBL X2D", + "sub_path": "filament/Bambu Support For PA PET @BBL X2D.json" + }, + { + "name": "Bambu Support For PA/PET @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu Support For PA PET @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu Support G @BBL A1", "sub_path": "filament/Bambu Support G @BBL A1.json" @@ -2481,6 +2917,14 @@ "name": "Bambu Support G @BBL X1E", "sub_path": "filament/Bambu Support G @BBL X1E.json" }, + { + "name": "Bambu Support G @BBL X2D", + "sub_path": "filament/Bambu Support G @BBL X2D.json" + }, + { + "name": "Bambu Support G @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu Support G @BBL X2D 0.4 nozzle.json" + }, { "name": "Fiberon PA12-CF @BBL H2D", "sub_path": "filament/Polymaker/Fiberon PA12-CF @BBL H2D.json" @@ -2489,6 +2933,10 @@ "name": "Fiberon PA12-CF @BBL X1C", "sub_path": "filament/Polymaker/Fiberon PA12-CF @BBL X1C.json" }, + { + "name": "Fiberon PA12-CF10 @BBL X1", + "sub_path": "filament/Polymaker/Fiberon PA12-CF10 @BBL X1.json" + }, { "name": "Fiberon PA6-CF @BBL H2D", "sub_path": "filament/Polymaker/Fiberon PA6-CF @BBL H2D.json" @@ -2497,6 +2945,10 @@ "name": "Fiberon PA6-CF @BBL X1C", "sub_path": "filament/Polymaker/Fiberon PA6-CF @BBL X1C.json" }, + { + "name": "Fiberon PA6-CF20 @BBL X1", + "sub_path": "filament/Polymaker/Fiberon PA6-CF20 @BBL X1.json" + }, { "name": "Fiberon PA6-GF @BBL H2D", "sub_path": "filament/Polymaker/Fiberon PA6-GF @BBL H2D.json" @@ -2505,6 +2957,10 @@ "name": "Fiberon PA6-GF @BBL X1C", "sub_path": "filament/Polymaker/Fiberon PA6-GF @BBL X1C.json" }, + { + "name": "Fiberon PA6-GF25 @BBL X1", + "sub_path": "filament/Polymaker/Fiberon PA6-GF25 @BBL X1.json" + }, { "name": "Fiberon PA612-CF @BBL H2D", "sub_path": "filament/Polymaker/Fiberon PA612-CF @BBL H2D.json" @@ -2513,6 +2969,10 @@ "name": "Fiberon PA612-CF @BBL X1C", "sub_path": "filament/Polymaker/Fiberon PA612-CF @BBL X1C.json" }, + { + "name": "Fiberon PA612-CF15 @BBL X1", + "sub_path": "filament/Polymaker/Fiberon PA612-CF15 @BBL X1.json" + }, { "name": "Generic PA", "sub_path": "filament/Generic PA.json" @@ -2537,6 +2997,14 @@ "name": "Generic PA @BBL P2S", "sub_path": "filament/Generic PA @BBL P2S.json" }, + { + "name": "Generic PA @BBL X2D", + "sub_path": "filament/Generic PA @BBL X2D.json" + }, + { + "name": "Generic PA @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PA @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PA-CF", "sub_path": "filament/Generic PA-CF.json" @@ -2553,6 +3021,14 @@ "name": "Generic PA-CF @BBL P2S", "sub_path": "filament/Generic PA-CF @BBL P2S.json" }, + { + "name": "Generic PA-CF @BBL X2D", + "sub_path": "filament/Generic PA-CF @BBL X2D.json" + }, + { + "name": "Generic PA-CF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PA-CF @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PC @BBL A1", "sub_path": "filament/Bambu PC @BBL A1.json" @@ -2661,6 +3137,18 @@ "name": "Bambu PC @BBL X1E 0.8 nozzle", "sub_path": "filament/Bambu PC @BBL X1E 0.8 nozzle.json" }, + { + "name": "Bambu PC @BBL X2D", + "sub_path": "filament/Bambu PC @BBL X2D.json" + }, + { + "name": "Bambu PC @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PC @BBL X2D 0.4 nozzle.json" + }, + { + "name": "Bambu PC @BBL X2D 0.8 nozzle", + "sub_path": "filament/Bambu PC @BBL X2D 0.8 nozzle.json" + }, { "name": "Bambu PC FR @BBL A1", "sub_path": "filament/Bambu PC FR @BBL A1.json" @@ -2777,6 +3265,18 @@ "name": "Bambu PC FR @BBL X1E 0.8 nozzle", "sub_path": "filament/Bambu PC FR @BBL X1E 0.8 nozzle.json" }, + { + "name": "Bambu PC FR @BBL X2D", + "sub_path": "filament/Bambu PC FR @BBL X2D.json" + }, + { + "name": "Bambu PC FR @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PC FR @BBL X2D 0.4 nozzle.json" + }, + { + "name": "Bambu PC FR @BBL X2D 0.8 nozzle", + "sub_path": "filament/Bambu PC FR @BBL X2D 0.8 nozzle.json" + }, { "name": "Generic PC", "sub_path": "filament/Generic PC.json" @@ -2817,6 +3317,18 @@ "name": "Generic PC @BBL P1P 0.2 nozzle", "sub_path": "filament/P1P/Generic PC @BBL P1P 0.2 nozzle.json" }, + { + "name": "Generic PC @BBL X2D", + "sub_path": "filament/Generic PC @BBL X2D.json" + }, + { + "name": "Generic PC @BBL X2D 0.2 nozzle", + "sub_path": "filament/Generic PC @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Generic PC @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PC @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PCTG @BBL A1", "sub_path": "filament/Generic PCTG @BBL A1.json" @@ -2845,6 +3357,14 @@ "name": "Generic PCTG @BBL X1C", "sub_path": "filament/Generic PCTG @BBL X1C.json" }, + { + "name": "Generic PCTG @BBL X2D", + "sub_path": "filament/Generic PCTG @BBL X2D.json" + }, + { + "name": "Generic PCTG @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PCTG @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PE @BBL A1", "sub_path": "filament/Generic PE @BBL A1.json" @@ -2873,6 +3393,14 @@ "name": "Generic PE @BBL X1C", "sub_path": "filament/Generic PE @BBL X1C.json" }, + { + "name": "Generic PE @BBL X2D", + "sub_path": "filament/Generic PE @BBL X2D.json" + }, + { + "name": "Generic PE @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PE @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PE-CF @BBL A1", "sub_path": "filament/Generic PE-CF @BBL A1.json" @@ -2901,6 +3429,246 @@ "name": "Generic PE-CF @BBL X1C", "sub_path": "filament/Generic PE-CF @BBL X1C.json" }, + { + "name": "Generic PE-CF @BBL X2D", + "sub_path": "filament/Generic PE-CF @BBL X2D.json" + }, + { + "name": "Generic PE-CF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PE-CF @BBL X2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG @BBL A1", + "sub_path": "filament/BETA/BETA PETG @BBL A1.json" + }, + { + "name": "BETA PETG @BBL A1M 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG @BBL A1M 0.4 nozzle.json" + }, + { + "name": "BETA PETG @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG @BBL X1C", + "sub_path": "filament/BETA/BETA PETG @BBL X1C.json" + }, + { + "name": "BETA PETG Fluorescence @BBL A1", + "sub_path": "filament/BETA/BETA PETG Fluorescence @BBL A1.json" + }, + { + "name": "BETA PETG Fluorescence @BBL A1M 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Fluorescence @BBL A1M 0.4 nozzle.json" + }, + { + "name": "BETA PETG Fluorescence @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Fluorescence @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG Fluorescence @BBL X1C", + "sub_path": "filament/BETA/BETA PETG Fluorescence @BBL X1C.json" + }, + { + "name": "BETA PETG Glitter @BBL A1", + "sub_path": "filament/BETA/BETA PETG Glitter @BBL A1.json" + }, + { + "name": "BETA PETG Glitter @BBL A1M 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Glitter @BBL A1M 0.4 nozzle.json" + }, + { + "name": "BETA PETG Glitter @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Glitter @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG Glitter @BBL X1C", + "sub_path": "filament/BETA/BETA PETG Glitter @BBL X1C.json" + }, + { + "name": "BETA PETG Glow @BBL A1", + "sub_path": "filament/BETA/BETA PETG Glow @BBL A1.json" + }, + { + "name": "BETA PETG Glow @BBL A1M 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Glow @BBL A1M 0.4 nozzle.json" + }, + { + "name": "BETA PETG Glow @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Glow @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG Glow @BBL X1C", + "sub_path": "filament/BETA/BETA PETG Glow @BBL X1C.json" + }, + { + "name": "BETA PETG Gradient @BBL A1", + "sub_path": "filament/BETA/BETA PETG Gradient @BBL A1.json" + }, + { + "name": "BETA PETG Gradient @BBL A1M 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Gradient @BBL A1M 0.4 nozzle.json" + }, + { + "name": "BETA PETG Gradient @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Gradient @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG Gradient @BBL X1C", + "sub_path": "filament/BETA/BETA PETG Gradient @BBL X1C.json" + }, + { + "name": "BETA PETG HF @BBL A1", + "sub_path": "filament/BETA/BETA PETG HF @BBL A1.json" + }, + { + "name": "BETA PETG HF @BBL A1M", + "sub_path": "filament/BETA/BETA PETG HF @BBL A1M.json" + }, + { + "name": "BETA PETG HF @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG HF @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG HF @BBL X1C", + "sub_path": "filament/BETA/BETA PETG HF @BBL X1C.json" + }, + { + "name": "BETA PETG Heat Color Change @BBL A1", + "sub_path": "filament/BETA/BETA PETG Heat Color Change @BBL A1.json" + }, + { + "name": "BETA PETG Heat Color Change @BBL A1M 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Heat Color Change @BBL A1M 0.4 nozzle.json" + }, + { + "name": "BETA PETG Heat Color Change @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Heat Color Change @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG Heat Color Change @BBL X1C", + "sub_path": "filament/BETA/BETA PETG Heat Color Change @BBL X1C.json" + }, + { + "name": "BETA PETG Marble @BBL A1", + "sub_path": "filament/BETA/BETA PETG Marble @BBL A1.json" + }, + { + "name": "BETA PETG Marble @BBL A1M 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Marble @BBL A1M 0.4 nozzle.json" + }, + { + "name": "BETA PETG Marble @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Marble @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG Marble @BBL X1C", + "sub_path": "filament/BETA/BETA PETG Marble @BBL X1C.json" + }, + { + "name": "BETA PETG Matte @BBL A1", + "sub_path": "filament/BETA/BETA PETG Matte @BBL A1.json" + }, + { + "name": "BETA PETG Matte @BBL A1M 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Matte @BBL A1M 0.4 nozzle.json" + }, + { + "name": "BETA PETG Matte @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Matte @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG Matte @BBL X1C", + "sub_path": "filament/BETA/BETA PETG Matte @BBL X1C.json" + }, + { + "name": "BETA PETG Metallic @BBL A1", + "sub_path": "filament/BETA/BETA PETG Metallic @BBL A1.json" + }, + { + "name": "BETA PETG Metallic @BBL A1M 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Metallic @BBL A1M 0.4 nozzle.json" + }, + { + "name": "BETA PETG Metallic @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Metallic @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG Metallic @BBL X1C", + "sub_path": "filament/BETA/BETA PETG Metallic @BBL X1C.json" + }, + { + "name": "BETA PETG Transparent @BBL A1", + "sub_path": "filament/BETA/BETA PETG Transparent @BBL A1.json" + }, + { + "name": "BETA PETG Transparent @BBL A1M", + "sub_path": "filament/BETA/BETA PETG Transparent @BBL A1M.json" + }, + { + "name": "BETA PETG Transparent @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG Transparent @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG Transparent @BBL X1C", + "sub_path": "filament/BETA/BETA PETG Transparent @BBL X1C.json" + }, + { + "name": "BETA PETG UV Color Change @BBL A1", + "sub_path": "filament/BETA/BETA PETG UV Color Change @BBL A1.json" + }, + { + "name": "BETA PETG UV Color Change @BBL A1M 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG UV Color Change @BBL A1M 0.4 nozzle.json" + }, + { + "name": "BETA PETG UV Color Change @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG UV Color Change @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG UV Color Change @BBL X1C", + "sub_path": "filament/BETA/BETA PETG UV Color Change @BBL X1C.json" + }, + { + "name": "BETA PETG-CF @BBL A1 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG-CF @BBL A1 0.4 nozzle.json" + }, + { + "name": "BETA PETG-CF @BBL A1M 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG-CF @BBL A1M 0.4 nozzle.json" + }, + { + "name": "BETA PETG-CF @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG-CF @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG-CF @BBL P1P 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG-CF @BBL P1P 0.4 nozzle.json" + }, + { + "name": "BETA PETG-CF @BBL X1C 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG-CF @BBL X1C 0.4 nozzle.json" + }, + { + "name": "BETA PETG-GF @BBL A1 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG-GF @BBL A1 0.4 nozzle.json" + }, + { + "name": "BETA PETG-GF @BBL A1M 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG-GF @BBL A1M 0.4 nozzle.json" + }, + { + "name": "BETA PETG-GF @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG-GF @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PETG-GF @BBL P1P 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG-GF @BBL P1P 0.4 nozzle.json" + }, + { + "name": "BETA PETG-GF @BBL X1C 0.4 nozzle", + "sub_path": "filament/BETA/BETA PETG-GF @BBL X1C 0.4 nozzle.json" + }, { "name": "Bambu PET-CF @BBL A1", "sub_path": "filament/Bambu PET-CF @BBL A1.json" @@ -2933,6 +3701,14 @@ "name": "Bambu PET-CF @BBL X1E", "sub_path": "filament/Bambu PET-CF @BBL X1E.json" }, + { + "name": "Bambu PET-CF @BBL X2D", + "sub_path": "filament/Bambu PET-CF @BBL X2D.json" + }, + { + "name": "Bambu PET-CF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PET-CF @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PETG Basic @BBL A1", "sub_path": "filament/Bambu PETG Basic @BBL A1.json" @@ -3013,6 +3789,18 @@ "name": "Bambu PETG Basic @BBL X1C 0.8 nozzle", "sub_path": "filament/Bambu PETG Basic @BBL X1C 0.8 nozzle.json" }, + { + "name": "Bambu PETG Basic @BBL X2D", + "sub_path": "filament/Bambu PETG Basic @BBL X2D.json" + }, + { + "name": "Bambu PETG Basic @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PETG Basic @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu PETG Basic @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PETG Basic @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PETG HF @BBL A1", "sub_path": "filament/Bambu PETG HF @BBL A1.json" @@ -3109,6 +3897,18 @@ "name": "Bambu PETG HF @BBL X1C 0.8 nozzle", "sub_path": "filament/Bambu PETG HF @BBL X1C 0.8 nozzle.json" }, + { + "name": "Bambu PETG HF @BBL X2D", + "sub_path": "filament/Bambu PETG HF @BBL X2D.json" + }, + { + "name": "Bambu PETG HF @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PETG HF @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu PETG HF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PETG HF @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PETG Translucent @BBL A1", "sub_path": "filament/Bambu PETG Translucent @BBL A1.json" @@ -3189,6 +3989,22 @@ "name": "Bambu PETG Translucent @BBL X1C 0.8 nozzle", "sub_path": "filament/Bambu PETG Translucent @BBL X1C 0.8 nozzle.json" }, + { + "name": "Bambu PETG Translucent @BBL X2D", + "sub_path": "filament/Bambu PETG Translucent @BBL X2D.json" + }, + { + "name": "Bambu PETG Translucent @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PETG Translucent @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu PETG Translucent @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PETG Translucent @BBL X2D 0.4 nozzle.json" + }, + { + "name": "Bambu PETG Translucent @BBL X2D 0.8 nozzle", + "sub_path": "filament/Bambu PETG Translucent @BBL X2D 0.8 nozzle.json" + }, { "name": "Bambu PETG-CF @BBL A1 0.4 nozzle", "sub_path": "filament/Bambu PETG-CF @BBL A1 0.4 nozzle.json" @@ -3245,6 +4061,18 @@ "name": "Bambu PETG-CF @BBL X1C 0.4 nozzle", "sub_path": "filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json" }, + { + "name": "Bambu PETG-CF @BBL X2D", + "sub_path": "filament/Bambu PETG-CF @BBL X2D.json" + }, + { + "name": "Bambu PETG-CF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PETG-CF @BBL X2D 0.4 nozzle.json" + }, + { + "name": "Bambu PETG-CF @BBL X2D 0.8 nozzle", + "sub_path": "filament/Bambu PETG-CF @BBL X2D 0.8 nozzle.json" + }, { "name": "Fiberon PET-CF @BBL H2D", "sub_path": "filament/Polymaker/Fiberon PET-CF @BBL H2D.json" @@ -3253,10 +4081,18 @@ "name": "Fiberon PET-CF @BBL X1C", "sub_path": "filament/Polymaker/Fiberon PET-CF @BBL X1C.json" }, + { + "name": "Fiberon PET-CF17 @BBL X1", + "sub_path": "filament/Polymaker/Fiberon PET-CF17 @BBL X1.json" + }, { "name": "Fiberon PETG-ESD @BBL H2D", "sub_path": "filament/Polymaker/Fiberon PETG-ESD @BBL H2D.json" }, + { + "name": "Fiberon PETG-ESD @BBL X1", + "sub_path": "filament/Polymaker/Fiberon PETG-ESD @BBL X1.json" + }, { "name": "Fiberon PETG-ESD @BBL X1C", "sub_path": "filament/Polymaker/Fiberon PETG-ESD @BBL X1C.json" @@ -3269,6 +4105,10 @@ "name": "Fiberon PETG-rCF @BBL X1C", "sub_path": "filament/Polymaker/Fiberon PETG-rCF @BBL X1C.json" }, + { + "name": "Fiberon PETG-rCF08 @BBL X1", + "sub_path": "filament/Polymaker/Fiberon PETG-rCF08 @BBL X1.json" + }, { "name": "Generic PETG", "sub_path": "filament/Generic PETG.json" @@ -3333,6 +4173,18 @@ "name": "Generic PETG @BBL P2S 0.2 nozzle", "sub_path": "filament/Generic PETG @BBL P2S 0.2 nozzle.json" }, + { + "name": "Generic PETG @BBL X2D", + "sub_path": "filament/Generic PETG @BBL X2D.json" + }, + { + "name": "Generic PETG @BBL X2D 0.2 nozzle", + "sub_path": "filament/Generic PETG @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Generic PETG @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PETG @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PETG HF @BBL A1", "sub_path": "filament/Generic PETG HF @BBL A1.json" @@ -3401,6 +4253,18 @@ "name": "Generic PETG HF @BBL X1C 0.2 nozzle", "sub_path": "filament/Generic PETG HF @BBL X1C 0.2 nozzle.json" }, + { + "name": "Generic PETG HF @BBL X2D", + "sub_path": "filament/Generic PETG HF @BBL X2D.json" + }, + { + "name": "Generic PETG HF @BBL X2D 0.2 nozzle", + "sub_path": "filament/Generic PETG HF @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Generic PETG HF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PETG HF @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PETG-CF @BBL A1", "sub_path": "filament/Generic PETG-CF @BBL A1.json" @@ -3433,6 +4297,14 @@ "name": "Generic PETG-CF @BBL X1C", "sub_path": "filament/Generic PETG-CF @BBL X1C.json" }, + { + "name": "Generic PETG-CF @BBL X2D", + "sub_path": "filament/Generic PETG-CF @BBL X2D.json" + }, + { + "name": "Generic PETG-CF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PETG-CF @BBL X2D 0.4 nozzle.json" + }, { "name": "PolyLite PETG @BBL A1", "sub_path": "filament/Polymaker/PolyLite PETG @BBL A1.json" @@ -3541,6 +4413,434 @@ "name": "Generic PHA @BBL X1C", "sub_path": "filament/Generic PHA @BBL X1C.json" }, + { + "name": "Generic PHA @BBL X2D", + "sub_path": "filament/Generic PHA @BBL X2D.json" + }, + { + "name": "Generic PHA @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PHA @BBL X2D 0.4 nozzle.json" + }, + { + "name": "BETA PLA Basic @BBL A1", + "sub_path": "filament/BETA/BETA PLA Basic @BBL A1.json" + }, + { + "name": "BETA PLA Basic @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Basic @BBL A1M.json" + }, + { + "name": "BETA PLA Basic @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Basic @BBL H2D.json" + }, + { + "name": "BETA PLA Basic @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Basic @BBL P1P.json" + }, + { + "name": "BETA PLA Basic @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Basic @BBL X1C.json" + }, + { + "name": "BETA PLA Chameleon @BBL A1", + "sub_path": "filament/BETA/BETA PLA Chameleon @BBL A1.json" + }, + { + "name": "BETA PLA Chameleon @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Chameleon @BBL A1M.json" + }, + { + "name": "BETA PLA Chameleon @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Chameleon @BBL H2D.json" + }, + { + "name": "BETA PLA Chameleon @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Chameleon @BBL P1P.json" + }, + { + "name": "BETA PLA Chameleon @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Chameleon @BBL X1C.json" + }, + { + "name": "BETA PLA Fluorescence @BBL A1", + "sub_path": "filament/BETA/BETA PLA Fluorescence @BBL A1.json" + }, + { + "name": "BETA PLA Fluorescence @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Fluorescence @BBL A1M.json" + }, + { + "name": "BETA PLA Fluorescence @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Fluorescence @BBL H2D.json" + }, + { + "name": "BETA PLA Fluorescence @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Fluorescence @BBL P1P.json" + }, + { + "name": "BETA PLA Fluorescence @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Fluorescence @BBL X1C.json" + }, + { + "name": "BETA PLA Glitter @BBL A1", + "sub_path": "filament/BETA/BETA PLA Glitter @BBL A1.json" + }, + { + "name": "BETA PLA Glitter @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Glitter @BBL A1M.json" + }, + { + "name": "BETA PLA Glitter @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Glitter @BBL H2D.json" + }, + { + "name": "BETA PLA Glitter @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Glitter @BBL P1P.json" + }, + { + "name": "BETA PLA Glitter @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Glitter @BBL X1C.json" + }, + { + "name": "BETA PLA Glow @BBL A1", + "sub_path": "filament/BETA/BETA PLA Glow @BBL A1.json" + }, + { + "name": "BETA PLA Glow @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Glow @BBL A1M.json" + }, + { + "name": "BETA PLA Glow @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Glow @BBL H2D.json" + }, + { + "name": "BETA PLA Glow @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Glow @BBL P1P.json" + }, + { + "name": "BETA PLA Glow @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Glow @BBL X1C.json" + }, + { + "name": "BETA PLA Gradient @BBL A1", + "sub_path": "filament/BETA/BETA PLA Gradient @BBL A1.json" + }, + { + "name": "BETA PLA Gradient @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Gradient @BBL A1M.json" + }, + { + "name": "BETA PLA Gradient @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Gradient @BBL H2D.json" + }, + { + "name": "BETA PLA Gradient @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Gradient @BBL P1P.json" + }, + { + "name": "BETA PLA Gradient @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Gradient @BBL X1C.json" + }, + { + "name": "BETA PLA Heat Color Change @BBL A1", + "sub_path": "filament/BETA/BETA PLA Heat Color Change @BBL A1.json" + }, + { + "name": "BETA PLA Heat Color Change @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Heat Color Change @BBL A1M.json" + }, + { + "name": "BETA PLA Heat Color Change @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Heat Color Change @BBL H2D.json" + }, + { + "name": "BETA PLA Heat Color Change @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Heat Color Change @BBL P1P.json" + }, + { + "name": "BETA PLA Heat Color Change @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Heat Color Change @BBL X1C.json" + }, + { + "name": "BETA PLA High Speed @BBL A1", + "sub_path": "filament/BETA/BETA PLA High Speed @BBL A1.json" + }, + { + "name": "BETA PLA High Speed @BBL A1M", + "sub_path": "filament/BETA/BETA PLA High Speed @BBL A1M.json" + }, + { + "name": "BETA PLA High Speed @BBL H2D", + "sub_path": "filament/BETA/BETA PLA High Speed @BBL H2D.json" + }, + { + "name": "BETA PLA High Speed @BBL P1P", + "sub_path": "filament/BETA/BETA PLA High Speed @BBL P1P.json" + }, + { + "name": "BETA PLA High Speed @BBL X1C", + "sub_path": "filament/BETA/BETA PLA High Speed @BBL X1C.json" + }, + { + "name": "BETA PLA High Temp @BBL A1", + "sub_path": "filament/BETA/BETA PLA High Temp @BBL A1.json" + }, + { + "name": "BETA PLA High Temp @BBL A1M", + "sub_path": "filament/BETA/BETA PLA High Temp @BBL A1M.json" + }, + { + "name": "BETA PLA High Temp @BBL H2D", + "sub_path": "filament/BETA/BETA PLA High Temp @BBL H2D.json" + }, + { + "name": "BETA PLA High Temp @BBL P1P", + "sub_path": "filament/BETA/BETA PLA High Temp @BBL P1P.json" + }, + { + "name": "BETA PLA High Temp @BBL X1C", + "sub_path": "filament/BETA/BETA PLA High Temp @BBL X1C.json" + }, + { + "name": "BETA PLA Marble @BBL A1", + "sub_path": "filament/BETA/BETA PLA Marble @BBL A1.json" + }, + { + "name": "BETA PLA Marble @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Marble @BBL A1M.json" + }, + { + "name": "BETA PLA Marble @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Marble @BBL H2D.json" + }, + { + "name": "BETA PLA Marble @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Marble @BBL P1P.json" + }, + { + "name": "BETA PLA Marble @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Marble @BBL X1C.json" + }, + { + "name": "BETA PLA Matte @BBL A1", + "sub_path": "filament/BETA/BETA PLA Matte @BBL A1.json" + }, + { + "name": "BETA PLA Matte @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Matte @BBL A1M.json" + }, + { + "name": "BETA PLA Matte @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Matte @BBL H2D.json" + }, + { + "name": "BETA PLA Matte @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Matte @BBL P1P.json" + }, + { + "name": "BETA PLA Matte @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Matte @BBL X1C.json" + }, + { + "name": "BETA PLA Metal @BBL A1", + "sub_path": "filament/BETA/BETA PLA Metal @BBL A1.json" + }, + { + "name": "BETA PLA Metal @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Metal @BBL A1M.json" + }, + { + "name": "BETA PLA Metal @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Metal @BBL H2D.json" + }, + { + "name": "BETA PLA Metal @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Metal @BBL P1P.json" + }, + { + "name": "BETA PLA Metal @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Metal @BBL X1C.json" + }, + { + "name": "BETA PLA Metallic @BBL A1", + "sub_path": "filament/BETA/BETA PLA Metallic @BBL A1.json" + }, + { + "name": "BETA PLA Metallic @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Metallic @BBL A1M.json" + }, + { + "name": "BETA PLA Metallic @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Metallic @BBL H2D.json" + }, + { + "name": "BETA PLA Metallic @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Metallic @BBL P1P.json" + }, + { + "name": "BETA PLA Metallic @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Metallic @BBL X1C.json" + }, + { + "name": "BETA PLA PRO @BBL A1", + "sub_path": "filament/BETA/BETA PLA PRO @BBL A1.json" + }, + { + "name": "BETA PLA PRO @BBL A1M", + "sub_path": "filament/BETA/BETA PLA PRO @BBL A1M.json" + }, + { + "name": "BETA PLA PRO @BBL H2D", + "sub_path": "filament/BETA/BETA PLA PRO @BBL H2D.json" + }, + { + "name": "BETA PLA PRO @BBL P1P", + "sub_path": "filament/BETA/BETA PLA PRO @BBL P1P.json" + }, + { + "name": "BETA PLA PRO @BBL X1C", + "sub_path": "filament/BETA/BETA PLA PRO @BBL X1C.json" + }, + { + "name": "BETA PLA Silk @BBL A1", + "sub_path": "filament/BETA/BETA PLA Silk @BBL A1.json" + }, + { + "name": "BETA PLA Silk @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Silk @BBL A1M.json" + }, + { + "name": "BETA PLA Silk @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Silk @BBL H2D.json" + }, + { + "name": "BETA PLA Silk @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Silk @BBL P1P.json" + }, + { + "name": "BETA PLA Silk @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Silk @BBL X1C.json" + }, + { + "name": "BETA PLA Silk+ @BBL A1", + "sub_path": "filament/BETA/BETA PLA Silk+ @BBL A1.json" + }, + { + "name": "BETA PLA Silk+ @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Silk+ @BBL A1M.json" + }, + { + "name": "BETA PLA Silk+ @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Silk+ @BBL H2D.json" + }, + { + "name": "BETA PLA Silk+ @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Silk+ @BBL P1P.json" + }, + { + "name": "BETA PLA Silk+ @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Silk+ @BBL X1C.json" + }, + { + "name": "BETA PLA Transparent @BBL A1", + "sub_path": "filament/BETA/BETA PLA Transparent @BBL A1.json" + }, + { + "name": "BETA PLA Transparent @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Transparent @BBL A1M.json" + }, + { + "name": "BETA PLA Transparent @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Transparent @BBL H2D.json" + }, + { + "name": "BETA PLA Transparent @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Transparent @BBL P1P.json" + }, + { + "name": "BETA PLA Transparent @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Transparent @BBL X1C.json" + }, + { + "name": "BETA PLA UV Color Change @BBL A1", + "sub_path": "filament/BETA/BETA PLA UV Color Change @BBL A1.json" + }, + { + "name": "BETA PLA UV Color Change @BBL A1M", + "sub_path": "filament/BETA/BETA PLA UV Color Change @BBL A1M.json" + }, + { + "name": "BETA PLA UV Color Change @BBL H2D", + "sub_path": "filament/BETA/BETA PLA UV Color Change @BBL H2D.json" + }, + { + "name": "BETA PLA UV Color Change @BBL P1P", + "sub_path": "filament/BETA/BETA PLA UV Color Change @BBL P1P.json" + }, + { + "name": "BETA PLA UV Color Change @BBL X1C", + "sub_path": "filament/BETA/BETA PLA UV Color Change @BBL X1C.json" + }, + { + "name": "BETA PLA Wood @BBL A1", + "sub_path": "filament/BETA/BETA PLA Wood @BBL A1.json" + }, + { + "name": "BETA PLA Wood @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Wood @BBL A1M.json" + }, + { + "name": "BETA PLA Wood @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Wood @BBL H2D.json" + }, + { + "name": "BETA PLA Wood @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Wood @BBL P1P.json" + }, + { + "name": "BETA PLA Wood @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Wood @BBL X1C.json" + }, + { + "name": "BETA PLA Youth @BBL A1", + "sub_path": "filament/BETA/BETA PLA Youth @BBL A1.json" + }, + { + "name": "BETA PLA Youth @BBL A1M", + "sub_path": "filament/BETA/BETA PLA Youth @BBL A1M.json" + }, + { + "name": "BETA PLA Youth @BBL H2D", + "sub_path": "filament/BETA/BETA PLA Youth @BBL H2D.json" + }, + { + "name": "BETA PLA Youth @BBL P1P", + "sub_path": "filament/BETA/BETA PLA Youth @BBL P1P.json" + }, + { + "name": "BETA PLA Youth @BBL X1C", + "sub_path": "filament/BETA/BETA PLA Youth @BBL X1C.json" + }, + { + "name": "BETA PLA-CF @BBL A1", + "sub_path": "filament/BETA/BETA PLA-CF @BBL A1.json" + }, + { + "name": "BETA PLA-CF @BBL A1M", + "sub_path": "filament/BETA/BETA PLA-CF @BBL A1M.json" + }, + { + "name": "BETA PLA-CF @BBL H2D 0.4 nozzle", + "sub_path": "filament/BETA/BETA PLA-CF @BBL H2D 0.4 nozzle.json" + }, + { + "name": "BETA PLA-CF @BBL P1P", + "sub_path": "filament/BETA/BETA PLA-CF @BBL P1P.json" + }, + { + "name": "BETA PLA-CF @BBL X1C", + "sub_path": "filament/BETA/BETA PLA-CF @BBL X1C.json" + }, { "name": "Bambu PLA Aero @BBL A1", "sub_path": "filament/Bambu PLA Aero @BBL A1.json" @@ -3577,6 +4877,14 @@ "name": "Bambu PLA Aero @BBL X1C", "sub_path": "filament/Bambu PLA Aero @BBL X1C.json" }, + { + "name": "Bambu PLA Aero @BBL X2D", + "sub_path": "filament/Bambu PLA Aero @BBL X2D.json" + }, + { + "name": "Bambu PLA Aero @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Aero @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA Basic @BBL A1", "sub_path": "filament/Bambu PLA Basic @BBL A1.json" @@ -3681,6 +4989,18 @@ "name": "Bambu PLA Basic @BBL X1C 0.8 nozzle", "sub_path": "filament/Bambu PLA Basic @BBL X1C 0.8 nozzle.json" }, + { + "name": "Bambu PLA Basic @BBL X2D", + "sub_path": "filament/Bambu PLA Basic @BBL X2D.json" + }, + { + "name": "Bambu PLA Basic @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PLA Basic @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu PLA Basic @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Basic @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA Dynamic @BBL A1", "sub_path": "filament/Bambu PLA Dynamic @BBL A1.json" @@ -3761,6 +5081,18 @@ "name": "Bambu PLA Dynamic @BBL X1C 0.8 nozzle", "sub_path": "filament/Bambu PLA Dynamic @BBL X1C 0.8 nozzle.json" }, + { + "name": "Bambu PLA Dynamic @BBL X2D", + "sub_path": "filament/Bambu PLA Dynamic @BBL X2D.json" + }, + { + "name": "Bambu PLA Dynamic @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PLA Dynamic @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu PLA Dynamic @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Dynamic @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA Galaxy @BBL A1", "sub_path": "filament/Bambu PLA Galaxy @BBL A1.json" @@ -3841,6 +5173,18 @@ "name": "Bambu PLA Galaxy @BBL X1C 0.8 nozzle", "sub_path": "filament/Bambu PLA Galaxy @BBL X1C 0.8 nozzle.json" }, + { + "name": "Bambu PLA Galaxy @BBL X2D", + "sub_path": "filament/Bambu PLA Galaxy @BBL X2D.json" + }, + { + "name": "Bambu PLA Galaxy @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PLA Galaxy @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu PLA Galaxy @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Galaxy @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA Glow @BBL A1", "sub_path": "filament/Bambu PLA Glow @BBL A1.json" @@ -3909,6 +5253,14 @@ "name": "Bambu PLA Glow @BBL X1E", "sub_path": "filament/Bambu PLA Glow @BBL X1E.json" }, + { + "name": "Bambu PLA Glow @BBL X2D", + "sub_path": "filament/Bambu PLA Glow @BBL X2D.json" + }, + { + "name": "Bambu PLA Glow @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Glow @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA Lite @BBL A1", "sub_path": "filament/Bambu PLA Lite @BBL A1.json" @@ -3997,6 +5349,18 @@ "name": "Bambu PLA Lite @BBL X1C 0.8 nozzle", "sub_path": "filament/Bambu PLA Lite @BBL X1C 0.8 nozzle.json" }, + { + "name": "Bambu PLA Lite @BBL X2D", + "sub_path": "filament/Bambu PLA Lite @BBL X2D.json" + }, + { + "name": "Bambu PLA Lite @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PLA Lite @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu PLA Lite @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Lite @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA Marble @BBL A1", "sub_path": "filament/Bambu PLA Marble @BBL A1.json" @@ -4037,6 +5401,14 @@ "name": "Bambu PLA Marble @BBL X1C", "sub_path": "filament/Bambu PLA Marble @BBL X1C.json" }, + { + "name": "Bambu PLA Marble @BBL X2D", + "sub_path": "filament/Bambu PLA Marble @BBL X2D.json" + }, + { + "name": "Bambu PLA Marble @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Marble @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA Matte @BBL A1", "sub_path": "filament/Bambu PLA Matte @BBL A1.json" @@ -4141,6 +5513,18 @@ "name": "Bambu PLA Matte @BBL X1C 0.8 nozzle", "sub_path": "filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json" }, + { + "name": "Bambu PLA Matte @BBL X2D", + "sub_path": "filament/Bambu PLA Matte @BBL X2D.json" + }, + { + "name": "Bambu PLA Matte @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PLA Matte @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu PLA Matte @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Matte @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA Metal @BBL A1", "sub_path": "filament/Bambu PLA Metal @BBL A1.json" @@ -4217,6 +5601,18 @@ "name": "Bambu PLA Metal @BBL X1C 0.2 nozzle", "sub_path": "filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json" }, + { + "name": "Bambu PLA Metal @BBL X2D", + "sub_path": "filament/Bambu PLA Metal @BBL X2D.json" + }, + { + "name": "Bambu PLA Metal @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PLA Metal @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu PLA Metal @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Metal @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA Silk @BBL A1", "sub_path": "filament/Bambu PLA Silk @BBL A1.json" @@ -4293,6 +5689,18 @@ "name": "Bambu PLA Silk @BBL X1C 0.2 nozzle", "sub_path": "filament/Bambu PLA Silk @BBL X1C 0.2 nozzle.json" }, + { + "name": "Bambu PLA Silk @BBL X2D", + "sub_path": "filament/Bambu PLA Silk @BBL X2D.json" + }, + { + "name": "Bambu PLA Silk @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PLA Silk @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu PLA Silk @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Silk @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA Silk+ @BBL A1", "sub_path": "filament/Bambu PLA Silk+ @BBL A1.json" @@ -4369,6 +5777,18 @@ "name": "Bambu PLA Silk+ @BBL X1C 0.2 nozzle", "sub_path": "filament/Bambu PLA Silk+ @BBL X1C 0.2 nozzle.json" }, + { + "name": "Bambu PLA Silk+ @BBL X2D", + "sub_path": "filament/Bambu PLA Silk+ @BBL X2D.json" + }, + { + "name": "Bambu PLA Silk+ @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PLA Silk+ @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu PLA Silk+ @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Silk+ @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA Sparkle @BBL A1", "sub_path": "filament/Bambu PLA Sparkle @BBL A1.json" @@ -4413,6 +5833,14 @@ "name": "Bambu PLA Sparkle @BBL X1C", "sub_path": "filament/Bambu PLA Sparkle @BBL X1C.json" }, + { + "name": "Bambu PLA Sparkle @BBL X2D", + "sub_path": "filament/Bambu PLA Sparkle @BBL X2D.json" + }, + { + "name": "Bambu PLA Sparkle @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Sparkle @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA Tough @BBL A1", "sub_path": "filament/Bambu PLA Tough @BBL A1.json" @@ -4481,6 +5909,18 @@ "name": "Bambu PLA Tough @BBL X1C 0.2 nozzle", "sub_path": "filament/Bambu PLA Tough @BBL X1C 0.2 nozzle.json" }, + { + "name": "Bambu PLA Tough @BBL X2D", + "sub_path": "filament/Bambu PLA Tough @BBL X2D.json" + }, + { + "name": "Bambu PLA Tough @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PLA Tough @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu PLA Tough @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Tough @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA Tough+ @BBL A1", "sub_path": "filament/Bambu PLA Tough+ @BBL A1.json" @@ -4585,6 +6025,18 @@ "name": "Bambu PLA Tough+ @BBL X1C 0.8 nozzle", "sub_path": "filament/Bambu PLA Tough+ @BBL X1C 0.8 nozzle.json" }, + { + "name": "Bambu PLA Tough+ @BBL X2D", + "sub_path": "filament/Bambu PLA Tough+ @BBL X2D.json" + }, + { + "name": "Bambu PLA Tough+ @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PLA Tough+ @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu PLA Tough+ @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Tough+ @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA Translucent @BBL A1", "sub_path": "filament/Bambu PLA Translucent @BBL A1.json" @@ -4681,6 +6133,22 @@ "name": "Bambu PLA Translucent @BBL X1C 0.8 nozzle", "sub_path": "filament/Bambu PLA Translucent @BBL X1C 0.8 nozzle.json" }, + { + "name": "Bambu PLA Translucent @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PLA Translucent @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu PLA Translucent @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Translucent @BBL X2D 0.4 nozzle.json" + }, + { + "name": "Bambu PLA Translucent @BBL X2D 0.6 nozzle", + "sub_path": "filament/Bambu PLA Translucent @BBL X2D 0.6 nozzle.json" + }, + { + "name": "Bambu PLA Translucent @BBL X2D 0.8 nozzle", + "sub_path": "filament/Bambu PLA Translucent @BBL X2D 0.8 nozzle.json" + }, { "name": "Bambu PLA Wood @BBL A1", "sub_path": "filament/Bambu PLA Wood @BBL A1.json" @@ -4737,6 +6205,14 @@ "name": "Bambu PLA Wood @BBL X1C 0.8 nozzle", "sub_path": "filament/Bambu PLA Wood @BBL X1C 0.8 nozzle.json" }, + { + "name": "Bambu PLA Wood @BBL X2D", + "sub_path": "filament/Bambu PLA Wood @BBL X2D.json" + }, + { + "name": "Bambu PLA Wood @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA Wood @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PLA-CF @BBL A1", "sub_path": "filament/Bambu PLA-CF @BBL A1.json" @@ -4797,6 +6273,14 @@ "name": "Bambu PLA-CF @BBL X1C 0.8 nozzle", "sub_path": "filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json" }, + { + "name": "Bambu PLA-CF @BBL X2D", + "sub_path": "filament/Bambu PLA-CF @BBL X2D.json" + }, + { + "name": "Bambu PLA-CF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PLA-CF @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu Support For PLA @BBL A1", "sub_path": "filament/Bambu Support For PLA @BBL A1.json" @@ -4861,6 +6345,18 @@ "name": "Bambu Support For PLA @BBL X1C 0.2 nozzle", "sub_path": "filament/Bambu Support For PLA @BBL X1C 0.2 nozzle.json" }, + { + "name": "Bambu Support For PLA @BBL X2D", + "sub_path": "filament/Bambu Support For PLA @BBL X2D.json" + }, + { + "name": "Bambu Support For PLA @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu Support For PLA @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu Support For PLA @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu Support For PLA @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu Support For PLA/PETG @BBL A1", "sub_path": "filament/Bambu Support For PLA-PETG @BBL A1.json" @@ -4925,6 +6421,18 @@ "name": "Bambu Support For PLA/PETG @BBL X1C 0.2 nozzle", "sub_path": "filament/Bambu Support For PLA-PETG @BBL X1C 0.2 nozzle.json" }, + { + "name": "Bambu Support For PLA/PETG @BBL X2D", + "sub_path": "filament/Bambu Support For PLA-PETG @BBL X2D.json" + }, + { + "name": "Bambu Support For PLA/PETG @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu Support For PLA-PETG @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu Support For PLA/PETG @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu Support For PLA-PETG @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu Support W @BBL A1", "sub_path": "filament/Bambu Support W @BBL A1.json" @@ -4993,6 +6501,18 @@ "name": "Bambu Support W @BBL X1C 0.2 nozzle", "sub_path": "filament/Bambu Support W @BBL X1C 0.2 nozzle.json" }, + { + "name": "Bambu Support W @BBL X2D", + "sub_path": "filament/Bambu Support W @BBL X2D.json" + }, + { + "name": "Bambu Support W @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu Support W @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Bambu Support W @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu Support W @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PLA", "sub_path": "filament/Generic PLA.json" @@ -5057,6 +6577,18 @@ "name": "Generic PLA @BBL P2S 0.2 nozzle", "sub_path": "filament/Generic PLA @BBL P2S 0.2 nozzle.json" }, + { + "name": "Generic PLA @BBL X2D", + "sub_path": "filament/Generic PLA @BBL X2D.json" + }, + { + "name": "Generic PLA @BBL X2D 0.2 nozzle", + "sub_path": "filament/Generic PLA @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Generic PLA @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PLA @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PLA High Speed @BBL A1", "sub_path": "filament/Generic PLA High Speed @BBL A1.json" @@ -5109,6 +6641,14 @@ "name": "Generic PLA High Speed @BBL X1C", "sub_path": "filament/Generic PLA High Speed @BBL X1C.json" }, + { + "name": "Generic PLA High Speed @BBL X2D", + "sub_path": "filament/Generic PLA High Speed @BBL X2D.json" + }, + { + "name": "Generic PLA High Speed @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PLA High Speed @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PLA Silk", "sub_path": "filament/Generic PLA Silk.json" @@ -5141,6 +6681,14 @@ "name": "Generic PLA Silk @BBL P2S", "sub_path": "filament/Generic PLA Silk @BBL P2S.json" }, + { + "name": "Generic PLA Silk @BBL X2D", + "sub_path": "filament/Generic PLA Silk @BBL X2D.json" + }, + { + "name": "Generic PLA Silk @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PLA Silk @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PLA-CF", "sub_path": "filament/Generic PLA-CF.json" @@ -5173,6 +6721,14 @@ "name": "Generic PLA-CF @BBL P2S", "sub_path": "filament/Generic PLA-CF @BBL P2S.json" }, + { + "name": "Generic PLA-CF @BBL X2D", + "sub_path": "filament/Generic PLA-CF @BBL X2D.json" + }, + { + "name": "Generic PLA-CF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PLA-CF @BBL X2D 0.4 nozzle.json" + }, { "name": "Numakers PLA+ @BBL A1", "sub_path": "filament/Numakers/Numakers PLA+ @BBL A1.json" @@ -5985,6 +7541,22 @@ "name": "Panchroma PLA UV Shift @BBL X1C 0.2 nozzle", "sub_path": "filament/Polymaker/Panchroma PLA UV Shift @BBL X1C 0.2 nozzle.json" }, + { + "name": "PolyLite CosPLA @BBL A1", + "sub_path": "filament/Polymaker/PolyLite CosPLA @BBL A1.json" + }, + { + "name": "PolyLite CosPLA @BBL A1M", + "sub_path": "filament/Polymaker/PolyLite CosPLA @BBL A1M.json" + }, + { + "name": "PolyLite CosPLA @BBL P1P", + "sub_path": "filament/Polymaker/PolyLite CosPLA @BBL P1P.json" + }, + { + "name": "PolyLite CosPLA @BBL X1", + "sub_path": "filament/Polymaker/PolyLite CosPLA @BBL X1.json" + }, { "name": "PolyLite PLA @BBL A1", "sub_path": "filament/Polymaker/PolyLite PLA @BBL A1.json" @@ -6037,6 +7609,70 @@ "name": "PolyLite PLA @BBL X1C", "sub_path": "filament/Polymaker/PolyLite PLA @BBL X1C.json" }, + { + "name": "PolyLite PLA Galaxy @BBL A1", + "sub_path": "filament/Polymaker/PolyLite PLA Galaxy @BBL A1.json" + }, + { + "name": "PolyLite PLA Galaxy @BBL A1M", + "sub_path": "filament/Polymaker/PolyLite PLA Galaxy @BBL A1M.json" + }, + { + "name": "PolyLite PLA Galaxy @BBL P1P", + "sub_path": "filament/Polymaker/PolyLite PLA Galaxy @BBL P1P.json" + }, + { + "name": "PolyLite PLA Galaxy @BBL X1", + "sub_path": "filament/Polymaker/PolyLite PLA Galaxy @BBL X1.json" + }, + { + "name": "PolyLite PLA Glow @BBL A1", + "sub_path": "filament/Polymaker/PolyLite PLA Glow @BBL A1.json" + }, + { + "name": "PolyLite PLA Glow @BBL A1M", + "sub_path": "filament/Polymaker/PolyLite PLA Glow @BBL A1M.json" + }, + { + "name": "PolyLite PLA Glow @BBL P1P", + "sub_path": "filament/Polymaker/PolyLite PLA Glow @BBL P1P.json" + }, + { + "name": "PolyLite PLA Glow @BBL X1", + "sub_path": "filament/Polymaker/PolyLite PLA Glow @BBL X1.json" + }, + { + "name": "PolyLite PLA Luminous @BBL A1", + "sub_path": "filament/Polymaker/PolyLite PLA Luminous @BBL A1.json" + }, + { + "name": "PolyLite PLA Luminous @BBL A1M", + "sub_path": "filament/Polymaker/PolyLite PLA Luminous @BBL A1M.json" + }, + { + "name": "PolyLite PLA Luminous @BBL P1P", + "sub_path": "filament/Polymaker/PolyLite PLA Luminous @BBL P1P.json" + }, + { + "name": "PolyLite PLA Luminous @BBL X1", + "sub_path": "filament/Polymaker/PolyLite PLA Luminous @BBL X1.json" + }, + { + "name": "PolyLite PLA Neon @BBL A1", + "sub_path": "filament/Polymaker/PolyLite PLA Neon @BBL A1.json" + }, + { + "name": "PolyLite PLA Neon @BBL A1M", + "sub_path": "filament/Polymaker/PolyLite PLA Neon @BBL A1M.json" + }, + { + "name": "PolyLite PLA Neon @BBL P1P", + "sub_path": "filament/Polymaker/PolyLite PLA Neon @BBL P1P.json" + }, + { + "name": "PolyLite PLA Neon @BBL X1", + "sub_path": "filament/Polymaker/PolyLite PLA Neon @BBL X1.json" + }, { "name": "PolyLite PLA Pro @BBL A1", "sub_path": "filament/Polymaker/PolyLite PLA Pro @BBL A1.json" @@ -6077,6 +7713,38 @@ "name": "PolyLite PLA Pro @BBL X1C 0.2 nozzle", "sub_path": "filament/Polymaker/PolyLite PLA Pro @BBL X1C 0.2 nozzle.json" }, + { + "name": "PolyLite PLA Starlight @BBL A1", + "sub_path": "filament/Polymaker/PolyLite PLA Starlight @BBL A1.json" + }, + { + "name": "PolyLite PLA Starlight @BBL A1M", + "sub_path": "filament/Polymaker/PolyLite PLA Starlight @BBL A1M.json" + }, + { + "name": "PolyLite PLA Starlight @BBL P1P", + "sub_path": "filament/Polymaker/PolyLite PLA Starlight @BBL P1P.json" + }, + { + "name": "PolyLite PLA Starlight @BBL X1", + "sub_path": "filament/Polymaker/PolyLite PLA Starlight @BBL X1.json" + }, + { + "name": "PolyLite PLA Translucent @BBL A1", + "sub_path": "filament/Polymaker/PolyLite PLA Translucent @BBL A1.json" + }, + { + "name": "PolyLite PLA Translucent @BBL A1M", + "sub_path": "filament/Polymaker/PolyLite PLA Translucent @BBL A1M.json" + }, + { + "name": "PolyLite PLA Translucent @BBL P1P", + "sub_path": "filament/Polymaker/PolyLite PLA Translucent @BBL P1P.json" + }, + { + "name": "PolyLite PLA Translucent @BBL X1", + "sub_path": "filament/Polymaker/PolyLite PLA Translucent @BBL X1.json" + }, { "name": "PolyTerra PLA @BBL A1", "sub_path": "filament/Polymaker/PolyTerra PLA @BBL A1.json" @@ -6129,6 +7797,38 @@ "name": "PolyTerra PLA @BBL X1C", "sub_path": "filament/Polymaker/PolyTerra PLA @BBL X1C.json" }, + { + "name": "PolyTerra PLA Marble @BBL A1", + "sub_path": "filament/Polymaker/PolyTerra PLA Marble @BBL A1.json" + }, + { + "name": "PolyTerra PLA Marble @BBL A1M", + "sub_path": "filament/Polymaker/PolyTerra PLA Marble @BBL A1M.json" + }, + { + "name": "PolyTerra PLA Marble @BBL P1P", + "sub_path": "filament/Polymaker/PolyTerra PLA Marble @BBL P1P.json" + }, + { + "name": "PolyTerra PLA Marble @BBL X1", + "sub_path": "filament/Polymaker/PolyTerra PLA Marble @BBL X1.json" + }, + { + "name": "PolyTerra PLA+ @BBL A1", + "sub_path": "filament/Polymaker/PolyTerra PLA+ @BBL A1.json" + }, + { + "name": "PolyTerra PLA+ @BBL A1M", + "sub_path": "filament/Polymaker/PolyTerra PLA+ @BBL A1M.json" + }, + { + "name": "PolyTerra PLA+ @BBL P1P", + "sub_path": "filament/Polymaker/PolyTerra PLA+ @BBL P1P.json" + }, + { + "name": "PolyTerra PLA+ @BBL X1", + "sub_path": "filament/Polymaker/PolyTerra PLA+ @BBL X1.json" + }, { "name": "Polymaker HT-PLA @BBL A1", "sub_path": "filament/Polymaker/Polymaker HT-PLA @BBL A1.json" @@ -6481,6 +8181,14 @@ "name": "Generic PP @BBL X1C", "sub_path": "filament/Generic PP @BBL X1C.json" }, + { + "name": "Generic PP @BBL X2D", + "sub_path": "filament/Generic PP @BBL X2D.json" + }, + { + "name": "Generic PP @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PP @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PP-CF @BBL A1", "sub_path": "filament/Generic PP-CF @BBL A1.json" @@ -6505,6 +8213,14 @@ "name": "Generic PP-CF @BBL X1C", "sub_path": "filament/Generic PP-CF @BBL X1C.json" }, + { + "name": "Generic PP-CF @BBL X2D", + "sub_path": "filament/Generic PP-CF @BBL X2D.json" + }, + { + "name": "Generic PP-CF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PP-CF @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PP-GF @BBL A1", "sub_path": "filament/Generic PP-GF @BBL A1.json" @@ -6529,6 +8245,14 @@ "name": "Generic PP-GF @BBL X1C", "sub_path": "filament/Generic PP-GF @BBL X1C.json" }, + { + "name": "Generic PP-GF @BBL X2D", + "sub_path": "filament/Generic PP-GF @BBL X2D.json" + }, + { + "name": "Generic PP-GF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PP-GF @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PPA-CF @BBL H2D", "sub_path": "filament/Bambu PPA-CF @BBL H2D.json" @@ -6553,6 +8277,14 @@ "name": "Bambu PPA-CF @BBL X1E", "sub_path": "filament/Bambu PPA-CF @BBL X1E.json" }, + { + "name": "Bambu PPA-CF @BBL X2D", + "sub_path": "filament/Bambu PPA-CF @BBL X2D.json" + }, + { + "name": "Bambu PPA-CF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PPA-CF @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PPA-CF @BBL H2D", "sub_path": "filament/Generic PPA-CF @BBL H2D.json" @@ -6577,6 +8309,14 @@ "name": "Generic PPA-CF @BBL X1E", "sub_path": "filament/Generic PPA-CF @BBL X1E.json" }, + { + "name": "Generic PPA-CF @BBL X2D", + "sub_path": "filament/Generic PPA-CF @BBL X2D.json" + }, + { + "name": "Generic PPA-CF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PPA-CF @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PPA-GF @BBL H2D", "sub_path": "filament/Generic PPA-GF @BBL H2D.json" @@ -6601,6 +8341,14 @@ "name": "Generic PPA-GF @BBL X1E", "sub_path": "filament/Generic PPA-GF @BBL X1E.json" }, + { + "name": "Generic PPA-GF @BBL X2D", + "sub_path": "filament/Generic PPA-GF @BBL X2D.json" + }, + { + "name": "Generic PPA-GF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PPA-GF @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu PPS-CF @BBL H2D", "sub_path": "filament/Bambu PPS-CF @BBL H2D.json" @@ -6697,6 +8445,14 @@ "name": "Bambu PVA @BBL X1C 0.2 nozzle", "sub_path": "filament/Bambu PVA @BBL X1C 0.2 nozzle.json" }, + { + "name": "Bambu PVA @BBL X2D", + "sub_path": "filament/Bambu PVA @BBL X2D.json" + }, + { + "name": "Bambu PVA @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu PVA @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic PVA", "sub_path": "filament/Generic PVA.json" @@ -6749,10 +8505,122 @@ "name": "Generic PVA @BBL P2S 0.2 nozzle", "sub_path": "filament/Generic PVA @BBL P2S 0.2 nozzle.json" }, + { + "name": "Generic PVA @BBL X2D", + "sub_path": "filament/Generic PVA @BBL X2D.json" + }, + { + "name": "Generic PVA @BBL X2D 0.2 nozzle", + "sub_path": "filament/Generic PVA @BBL X2D 0.2 nozzle.json" + }, + { + "name": "Generic PVA @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic PVA @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic SBS", "sub_path": "filament/Generic SBS.json" }, + { + "name": "BETA PEBA 90A @BBL A1", + "sub_path": "filament/BETA/BETA PEBA 90A @BBL A1.json" + }, + { + "name": "BETA PEBA 90A @BBL A1M", + "sub_path": "filament/BETA/BETA PEBA 90A @BBL A1M.json" + }, + { + "name": "BETA PEBA 90A @BBL H2D", + "sub_path": "filament/BETA/BETA PEBA 90A @BBL H2D.json" + }, + { + "name": "BETA PEBA 90A @BBL P1P", + "sub_path": "filament/BETA/BETA PEBA 90A @BBL P1P.json" + }, + { + "name": "BETA PEBA 90A @BBL X1C", + "sub_path": "filament/BETA/BETA PEBA 90A @BBL X1C.json" + }, + { + "name": "BETA TPU 90A @BBL A1", + "sub_path": "filament/BETA/BETA TPU 90A @BBL A1.json" + }, + { + "name": "BETA TPU 90A @BBL A1M", + "sub_path": "filament/BETA/BETA TPU 90A @BBL A1M.json" + }, + { + "name": "BETA TPU 90A @BBL H2D", + "sub_path": "filament/BETA/BETA TPU 90A @BBL H2D.json" + }, + { + "name": "BETA TPU 90A @BBL P1P", + "sub_path": "filament/BETA/BETA TPU 90A @BBL P1P.json" + }, + { + "name": "BETA TPU 90A @BBL X1C", + "sub_path": "filament/BETA/BETA TPU 90A @BBL X1C.json" + }, + { + "name": "BETA TPU 95A @BBL A1", + "sub_path": "filament/BETA/BETA TPU 95A @BBL A1.json" + }, + { + "name": "BETA TPU 95A @BBL A1M", + "sub_path": "filament/BETA/BETA TPU 95A @BBL A1M.json" + }, + { + "name": "BETA TPU 95A @BBL H2D", + "sub_path": "filament/BETA/BETA TPU 95A @BBL H2D.json" + }, + { + "name": "BETA TPU 95A @BBL P1P", + "sub_path": "filament/BETA/BETA TPU 95A @BBL P1P.json" + }, + { + "name": "BETA TPU 95A @BBL X1C", + "sub_path": "filament/BETA/BETA TPU 95A @BBL X1C.json" + }, + { + "name": "BETA TPU 98A @BBL A1", + "sub_path": "filament/BETA/BETA TPU 98A @BBL A1.json" + }, + { + "name": "BETA TPU 98A @BBL A1M", + "sub_path": "filament/BETA/BETA TPU 98A @BBL A1M.json" + }, + { + "name": "BETA TPU 98A @BBL H2D", + "sub_path": "filament/BETA/BETA TPU 98A @BBL H2D.json" + }, + { + "name": "BETA TPU 98A @BBL P1P", + "sub_path": "filament/BETA/BETA TPU 98A @BBL P1P.json" + }, + { + "name": "BETA TPU 98A @BBL X1C", + "sub_path": "filament/BETA/BETA TPU 98A @BBL X1C.json" + }, + { + "name": "BETA TPU Matte @BBL A1", + "sub_path": "filament/BETA/BETA TPU Matte @BBL A1.json" + }, + { + "name": "BETA TPU Matte @BBL A1M", + "sub_path": "filament/BETA/BETA TPU Matte @BBL A1M.json" + }, + { + "name": "BETA TPU Matte @BBL H2D", + "sub_path": "filament/BETA/BETA TPU Matte @BBL H2D.json" + }, + { + "name": "BETA TPU Matte @BBL P1P", + "sub_path": "filament/BETA/BETA TPU Matte @BBL P1P.json" + }, + { + "name": "BETA TPU Matte @BBL X1C", + "sub_path": "filament/BETA/BETA TPU Matte @BBL X1C.json" + }, { "name": "Bambu TPU 85A @BBL H2D", "sub_path": "filament/Bambu TPU 85A @BBL H2D.json" @@ -6789,6 +8657,14 @@ "name": "Bambu TPU 85A @BBL X1C", "sub_path": "filament/Bambu TPU 85A @BBL X1C.json" }, + { + "name": "Bambu TPU 85A @BBL X2D", + "sub_path": "filament/Bambu TPU 85A @BBL X2D.json" + }, + { + "name": "Bambu TPU 85A @BBL X2D 0.8 nozzle", + "sub_path": "filament/Bambu TPU 85A @BBL X2D 0.8 nozzle.json" + }, { "name": "Bambu TPU 90A @BBL A1", "sub_path": "filament/Bambu TPU 90A @BBL A1.json" @@ -6837,6 +8713,18 @@ "name": "Bambu TPU 90A @BBL X1C", "sub_path": "filament/Bambu TPU 90A @BBL X1C.json" }, + { + "name": "Bambu TPU 90A @BBL X2D", + "sub_path": "filament/Bambu TPU 90A @BBL X2D.json" + }, + { + "name": "Bambu TPU 90A @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu TPU 90A @BBL X2D 0.4 nozzle.json" + }, + { + "name": "Bambu TPU 90A @BBL X2D 0.8 nozzle", + "sub_path": "filament/Bambu TPU 90A @BBL X2D 0.8 nozzle.json" + }, { "name": "Bambu TPU 95A @BBL A1", "sub_path": "filament/Bambu TPU 95A @BBL A1.json" @@ -6873,6 +8761,14 @@ "name": "Bambu TPU 95A @BBL X1C", "sub_path": "filament/Bambu TPU 95A @BBL X1C.json" }, + { + "name": "Bambu TPU 95A @BBL X2D", + "sub_path": "filament/Bambu TPU 95A @BBL X2D.json" + }, + { + "name": "Bambu TPU 95A @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu TPU 95A @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu TPU 95A HF @BBL A1", "sub_path": "filament/Bambu TPU 95A HF @BBL A1.json" @@ -6917,6 +8813,14 @@ "name": "Bambu TPU 95A HF @BBL X1E", "sub_path": "filament/Bambu TPU 95A HF @BBL X1E.json" }, + { + "name": "Bambu TPU 95A HF @BBL X2D", + "sub_path": "filament/Bambu TPU 95A HF @BBL X2D.json" + }, + { + "name": "Bambu TPU 95A HF @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu TPU 95A HF @BBL X2D 0.4 nozzle.json" + }, { "name": "Bambu TPU for AMS @BBL A1", "sub_path": "filament/Bambu TPU for AMS @BBL A1.json" @@ -6949,6 +8853,14 @@ "name": "Bambu TPU for AMS @BBL X1C", "sub_path": "filament/Bambu TPU for AMS @BBL X1C.json" }, + { + "name": "Bambu TPU for AMS @BBL X2D", + "sub_path": "filament/Bambu TPU for AMS @BBL X2D.json" + }, + { + "name": "Bambu TPU for AMS @BBL X2D 0.4 nozzle", + "sub_path": "filament/Bambu TPU for AMS @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic TPU", "sub_path": "filament/Generic TPU.json" @@ -6969,6 +8881,14 @@ "name": "Generic TPU @BBL P2S", "sub_path": "filament/Generic TPU @BBL P2S.json" }, + { + "name": "Generic TPU @BBL X2D", + "sub_path": "filament/Generic TPU @BBL X2D.json" + }, + { + "name": "Generic TPU @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic TPU @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic TPU for AMS @BBL A1", "sub_path": "filament/Generic TPU for AMS @BBL A1.json" @@ -7001,6 +8921,14 @@ "name": "Generic TPU for AMS @BBL X1C", "sub_path": "filament/Generic TPU for AMS @BBL X1C.json" }, + { + "name": "Generic TPU for AMS @BBL X2D", + "sub_path": "filament/Generic TPU for AMS @BBL X2D.json" + }, + { + "name": "Generic TPU for AMS @BBL X2D 0.4 nozzle", + "sub_path": "filament/Generic TPU for AMS @BBL X2D 0.4 nozzle.json" + }, { "name": "Generic ABS @BBL H2DP", "sub_path": "filament/Generic ABS @BBL H2DP.json" @@ -7149,6 +9077,10 @@ "name": "Bambu PLA Glow @BBL X1C 0.2 nozzle", "sub_path": "filament/Bambu PLA Glow @BBL X1C 0.2 nozzle.json" }, + { + "name": "Bambu PLA Glow @BBL X2D 0.2 nozzle", + "sub_path": "filament/Bambu PLA Glow @BBL X2D 0.2 nozzle.json" + }, { "name": "Bambu PLA Glow @BBL X1E 0.2 nozzle", "sub_path": "filament/Bambu PLA Glow @BBL X1E 0.2 nozzle.json" @@ -7165,6 +9097,10 @@ "name": "Generic PLA High Speed @BBL X1C 0.2 nozzle", "sub_path": "filament/Generic PLA High Speed @BBL X1C 0.2 nozzle.json" }, + { + "name": "Generic PLA High Speed @BBL X2D 0.2 nozzle", + "sub_path": "filament/Generic PLA High Speed @BBL X2D 0.2 nozzle.json" + }, { "name": "Overture Matte PLA @BBL A1M 0.2 nozzle", "sub_path": "filament/Overture/Overture Matte PLA @BBL A1M 0.2 nozzle.json" @@ -7772,1710 +9708,6 @@ { "name": "fdm_filament_dual_common", "sub_path": "filament/fdm_filament_dual_common.json" - }, - { - "name": "BETA ABS @base", - "sub_path": "filament/BETA/BETA ABS @base.json" - }, - { - "name": "BETA ABS @BBL P1P", - "sub_path": "filament/BETA/BETA ABS @BBL P1P.json" - }, - { - "name": "BETA ABS @BBL A1", - "sub_path": "filament/BETA/BETA ABS @BBL A1.json" - }, - { - "name": "BETA ABS @BBL H2D", - "sub_path": "filament/BETA/BETA ABS @BBL H2D.json" - }, - { - "name": "BETA ABS @BBL X1C", - "sub_path": "filament/BETA/BETA ABS @BBL X1C.json" - }, - { - "name": "BETA ASA @base", - "sub_path": "filament/BETA/BETA ASA @base.json" - }, - { - "name": "BETA ASA @BBL A1 0.4 nozzle", - "sub_path": "filament/BETA/BETA ASA @BBL A1 0.4 nozzle.json" - }, - { - "name": "BETA ASA @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA ASA @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA ASA @BBL X1C 0.4 nozzle", - "sub_path": "filament/BETA/BETA ASA @BBL X1C 0.4 nozzle.json" - }, - { - "name": "BETA PLA Silk+ @base", - "sub_path": "filament/BETA/BETA PLA Silk+ @base.json" - }, - { - "name": "BETA PLA Silk+ @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Silk+ @BBL P1P.json" - }, - { - "name": "BETA PLA Silk+ @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Silk+ @BBL X1C.json" - }, - { - "name": "BETA PLA Silk+ @BBL A1", - "sub_path": "filament/BETA/BETA PLA Silk+ @BBL A1.json" - }, - { - "name": "BETA PLA Silk+ @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Silk+ @BBL A1M.json" - }, - { - "name": "BETA PLA Silk+ @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Silk+ @BBL H2D.json" - }, - { - "name": "BETA PAHT-CF @base", - "sub_path": "filament/BETA/BETA PAHT-CF @base.json" - }, - { - "name": "BETA PAHT-CF @BBL P1P", - "sub_path": "filament/BETA/BETA PAHT-CF @BBL P1P.json" - }, - { - "name": "BETA PAHT-CF @BBL H2D", - "sub_path": "filament/BETA/BETA PAHT-CF @BBL H2D.json" - }, - { - "name": "BETA PAHT-CF @BBL X1C", - "sub_path": "filament/BETA/BETA PAHT-CF @BBL X1C.json" - }, - { - "name": "BETA PEBA 90A @base", - "sub_path": "filament/BETA/BETA PEBA 90A @base.json" - }, - { - "name": "BETA PEBA 90A @BBL A1", - "sub_path": "filament/BETA/BETA PEBA 90A @BBL A1.json" - }, - { - "name": "BETA PEBA 90A @BBL A1M", - "sub_path": "filament/BETA/BETA PEBA 90A @BBL A1M.json" - }, - { - "name": "BETA PEBA 90A @BBL H2D", - "sub_path": "filament/BETA/BETA PEBA 90A @BBL H2D.json" - }, - { - "name": "BETA PEBA 90A @BBL P1P", - "sub_path": "filament/BETA/BETA PEBA 90A @BBL P1P.json" - }, - { - "name": "BETA PEBA 90A @BBL X1C", - "sub_path": "filament/BETA/BETA PEBA 90A @BBL X1C.json" - }, - { - "name": "BETA PETG Heat Color Change @base", - "sub_path": "filament/BETA/BETA PETG Heat Color Change @base.json" - }, - { - "name": "BETA PETG Heat Color Change @BBL A1", - "sub_path": "filament/BETA/BETA PETG Heat Color Change @BBL A1.json" - }, - { - "name": "BETA PETG Heat Color Change @BBL A1M 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Heat Color Change @BBL A1M 0.4 nozzle.json" - }, - { - "name": "BETA PETG Heat Color Change @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Heat Color Change @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PETG Heat Color Change @BBL X1C", - "sub_path": "filament/BETA/BETA PETG Heat Color Change @BBL X1C.json" - }, - { - "name": "BETA PETG Fluorescence @base", - "sub_path": "filament/BETA/BETA PETG Fluorescence @base.json" - }, - { - "name": "BETA PETG Fluorescence @BBL A1", - "sub_path": "filament/BETA/BETA PETG Fluorescence @BBL A1.json" - }, - { - "name": "BETA PETG Fluorescence @BBL A1M 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Fluorescence @BBL A1M 0.4 nozzle.json" - }, - { - "name": "BETA PETG Fluorescence @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Fluorescence @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PETG Fluorescence @BBL X1C", - "sub_path": "filament/BETA/BETA PETG Fluorescence @BBL X1C.json" - }, - { - "name": "BETA PETG Glitter @base", - "sub_path": "filament/BETA/BETA PETG Glitter @base.json" - }, - { - "name": "BETA PETG Glitter @BBL A1", - "sub_path": "filament/BETA/BETA PETG Glitter @BBL A1.json" - }, - { - "name": "BETA PETG Glitter @BBL A1M 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Glitter @BBL A1M 0.4 nozzle.json" - }, - { - "name": "BETA PETG Glitter @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Glitter @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PETG Glitter @BBL X1C", - "sub_path": "filament/BETA/BETA PETG Glitter @BBL X1C.json" - }, - { - "name": "BETA PETG Glow @base", - "sub_path": "filament/BETA/BETA PETG Glow @base.json" - }, - { - "name": "BETA PETG Glow @BBL A1", - "sub_path": "filament/BETA/BETA PETG Glow @BBL A1.json" - }, - { - "name": "BETA PETG Glow @BBL A1M 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Glow @BBL A1M 0.4 nozzle.json" - }, - { - "name": "BETA PETG Glow @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Glow @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PETG Glow @BBL X1C", - "sub_path": "filament/BETA/BETA PETG Glow @BBL X1C.json" - }, - { - "name": "BETA PETG Gradient @base", - "sub_path": "filament/BETA/BETA PETG Gradient @base.json" - }, - { - "name": "BETA PETG Gradient @BBL A1", - "sub_path": "filament/BETA/BETA PETG Gradient @BBL A1.json" - }, - { - "name": "BETA PETG Gradient @BBL A1M 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Gradient @BBL A1M 0.4 nozzle.json" - }, - { - "name": "BETA PETG Gradient @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Gradient @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PETG Gradient @BBL X1C", - "sub_path": "filament/BETA/BETA PETG Gradient @BBL X1C.json" - }, - { - "name": "BETA PETG HF @base", - "sub_path": "filament/BETA/BETA PETG HF @base.json" - }, - { - "name": "BETA PETG HF @BBL A1", - "sub_path": "filament/BETA/BETA PETG HF @BBL A1.json" - }, - { - "name": "BETA PETG HF @BBL A1M", - "sub_path": "filament/BETA/BETA PETG HF @BBL A1M.json" - }, - { - "name": "BETA PETG HF @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG HF @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PETG HF @BBL X1C", - "sub_path": "filament/BETA/BETA PETG HF @BBL X1C.json" - }, - { - "name": "BETA PETG Marble @base", - "sub_path": "filament/BETA/BETA PETG Marble @base.json" - }, - { - "name": "BETA PETG Marble @BBL A1", - "sub_path": "filament/BETA/BETA PETG Marble @BBL A1.json" - }, - { - "name": "BETA PETG Marble @BBL A1M 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Marble @BBL A1M 0.4 nozzle.json" - }, - { - "name": "BETA PETG Marble @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Marble @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PETG Marble @BBL X1C", - "sub_path": "filament/BETA/BETA PETG Marble @BBL X1C.json" - }, - { - "name": "BETA PETG Matte @base", - "sub_path": "filament/BETA/BETA PETG Matte @base.json" - }, - { - "name": "BETA PETG Matte @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Matte @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PETG Matte @BBL A1", - "sub_path": "filament/BETA/BETA PETG Matte @BBL A1.json" - }, - { - "name": "BETA PETG Matte @BBL A1M 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Matte @BBL A1M 0.4 nozzle.json" - }, - { - "name": "BETA PETG Matte @BBL X1C", - "sub_path": "filament/BETA/BETA PETG Matte @BBL X1C.json" - }, - { - "name": "BETA PETG Metallic @base", - "sub_path": "filament/BETA/BETA PETG Metallic @base.json" - }, - { - "name": "BETA PETG Metallic @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Metallic @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PETG Metallic @BBL A1", - "sub_path": "filament/BETA/BETA PETG Metallic @BBL A1.json" - }, - { - "name": "BETA PETG Metallic @BBL A1M 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Metallic @BBL A1M 0.4 nozzle.json" - }, - { - "name": "BETA PETG Metallic @BBL X1C", - "sub_path": "filament/BETA/BETA PETG Metallic @BBL X1C.json" - }, - { - "name": "BETA PETG Transparent @base", - "sub_path": "filament/BETA/BETA PETG Transparent @base.json" - }, - { - "name": "BETA PETG Transparent @BBL A1", - "sub_path": "filament/BETA/BETA PETG Transparent @BBL A1.json" - }, - { - "name": "BETA PETG Transparent @BBL A1M", - "sub_path": "filament/BETA/BETA PETG Transparent @BBL A1M.json" - }, - { - "name": "BETA PETG Transparent @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG Transparent @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PETG Transparent @BBL X1C", - "sub_path": "filament/BETA/BETA PETG Transparent @BBL X1C.json" - }, - { - "name": "BETA PETG UV Color Change @base", - "sub_path": "filament/BETA/BETA PETG UV Color Change @base.json" - }, - { - "name": "BETA PETG UV Color Change @BBL A1M 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG UV Color Change @BBL A1M 0.4 nozzle.json" - }, - { - "name": "BETA PETG UV Color Change @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG UV Color Change @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PETG UV Color Change @BBL A1", - "sub_path": "filament/BETA/BETA PETG UV Color Change @BBL A1.json" - }, - { - "name": "BETA PETG UV Color Change @BBL X1C", - "sub_path": "filament/BETA/BETA PETG UV Color Change @BBL X1C.json" - }, - { - "name": "BETA PETG-CF @base", - "sub_path": "filament/BETA/BETA PETG-CF @base.json" - }, - { - "name": "BETA PETG-CF @BBL P1P 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG-CF @BBL P1P 0.4 nozzle.json" - }, - { - "name": "BETA PETG-CF @BBL A1 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG-CF @BBL A1 0.4 nozzle.json" - }, - { - "name": "BETA PETG-CF @BBL A1M 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG-CF @BBL A1M 0.4 nozzle.json" - }, - { - "name": "BETA PETG-CF @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG-CF @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PETG-CF @BBL X1C 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG-CF @BBL X1C 0.4 nozzle.json" - }, - { - "name": "BETA PETG-GF @base", - "sub_path": "filament/BETA/BETA PETG-GF @base.json" - }, - { - "name": "BETA PETG-GF @BBL P1P 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG-GF @BBL P1P 0.4 nozzle.json" - }, - { - "name": "BETA PETG-GF @BBL A1 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG-GF @BBL A1 0.4 nozzle.json" - }, - { - "name": "BETA PETG-GF @BBL A1M 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG-GF @BBL A1M 0.4 nozzle.json" - }, - { - "name": "BETA PETG-GF @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG-GF @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PETG-GF @BBL X1C 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG-GF @BBL X1C 0.4 nozzle.json" - }, - { - "name": "BETA PETG @base", - "sub_path": "filament/BETA/BETA PETG @base.json" - }, - { - "name": "BETA PETG @BBL A1M 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG @BBL A1M 0.4 nozzle.json" - }, - { - "name": "BETA PETG @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PETG @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PETG @BBL A1", - "sub_path": "filament/BETA/BETA PETG @BBL A1.json" - }, - { - "name": "BETA PETG @BBL X1C", - "sub_path": "filament/BETA/BETA PETG @BBL X1C.json" - }, - { - "name": "BETA PLA Basic @base", - "sub_path": "filament/BETA/BETA PLA Basic @base.json" - }, - { - "name": "BETA PLA Basic @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Basic @BBL P1P.json" - }, - { - "name": "BETA PLA Basic @BBL A1", - "sub_path": "filament/BETA/BETA PLA Basic @BBL A1.json" - }, - { - "name": "BETA PLA Basic @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Basic @BBL A1M.json" - }, - { - "name": "BETA PLA Basic @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Basic @BBL H2D.json" - }, - { - "name": "BETA PLA Basic @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Basic @BBL X1C.json" - }, - { - "name": "BETA PLA Chameleon @base", - "sub_path": "filament/BETA/BETA PLA Chameleon @base.json" - }, - { - "name": "BETA PLA Chameleon @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Chameleon @BBL P1P.json" - }, - { - "name": "BETA PLA Chameleon @BBL A1", - "sub_path": "filament/BETA/BETA PLA Chameleon @BBL A1.json" - }, - { - "name": "BETA PLA Chameleon @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Chameleon @BBL A1M.json" - }, - { - "name": "BETA PLA Chameleon @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Chameleon @BBL H2D.json" - }, - { - "name": "BETA PLA Chameleon @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Chameleon @BBL X1C.json" - }, - { - "name": "BETA PLA Heat Color Change @base", - "sub_path": "filament/BETA/BETA PLA Heat Color Change @base.json" - }, - { - "name": "BETA PLA Heat Color Change @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Heat Color Change @BBL P1P.json" - }, - { - "name": "BETA PLA Heat Color Change @BBL A1", - "sub_path": "filament/BETA/BETA PLA Heat Color Change @BBL A1.json" - }, - { - "name": "BETA PLA Heat Color Change @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Heat Color Change @BBL A1M.json" - }, - { - "name": "BETA PLA Heat Color Change @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Heat Color Change @BBL H2D.json" - }, - { - "name": "BETA PLA Heat Color Change @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Heat Color Change @BBL X1C.json" - }, - { - "name": "BETA PLA Fluorescence @base", - "sub_path": "filament/BETA/BETA PLA Fluorescence @base.json" - }, - { - "name": "BETA PLA Fluorescence @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Fluorescence @BBL P1P.json" - }, - { - "name": "BETA PLA Fluorescence @BBL A1", - "sub_path": "filament/BETA/BETA PLA Fluorescence @BBL A1.json" - }, - { - "name": "BETA PLA Fluorescence @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Fluorescence @BBL A1M.json" - }, - { - "name": "BETA PLA Fluorescence @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Fluorescence @BBL H2D.json" - }, - { - "name": "BETA PLA Fluorescence @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Fluorescence @BBL X1C.json" - }, - { - "name": "BETA PLA Glitter @base", - "sub_path": "filament/BETA/BETA PLA Glitter @base.json" - }, - { - "name": "BETA PLA Glitter @BBL A1", - "sub_path": "filament/BETA/BETA PLA Glitter @BBL A1.json" - }, - { - "name": "BETA PLA Glitter @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Glitter @BBL A1M.json" - }, - { - "name": "BETA PLA Glitter @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Glitter @BBL H2D.json" - }, - { - "name": "BETA PLA Glitter @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Glitter @BBL P1P.json" - }, - { - "name": "BETA PLA Glitter @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Glitter @BBL X1C.json" - }, - { - "name": "BETA PLA Glow @base", - "sub_path": "filament/BETA/BETA PLA Glow @base.json" - }, - { - "name": "BETA PLA Glow @BBL A1", - "sub_path": "filament/BETA/BETA PLA Glow @BBL A1.json" - }, - { - "name": "BETA PLA Glow @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Glow @BBL A1M.json" - }, - { - "name": "BETA PLA Glow @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Glow @BBL H2D.json" - }, - { - "name": "BETA PLA Glow @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Glow @BBL P1P.json" - }, - { - "name": "BETA PLA Glow @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Glow @BBL X1C.json" - }, - { - "name": "BETA PLA Gradient @base", - "sub_path": "filament/BETA/BETA PLA Gradient @base.json" - }, - { - "name": "BETA PLA Gradient @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Gradient @BBL H2D.json" - }, - { - "name": "BETA PLA Gradient @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Gradient @BBL P1P.json" - }, - { - "name": "BETA PLA Gradient @BBL A1", - "sub_path": "filament/BETA/BETA PLA Gradient @BBL A1.json" - }, - { - "name": "BETA PLA Gradient @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Gradient @BBL A1M.json" - }, - { - "name": "BETA PLA Gradient @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Gradient @BBL X1C.json" - }, - { - "name": "BETA PLA Marble @base", - "sub_path": "filament/BETA/BETA PLA Marble @base.json" - }, - { - "name": "BETA PLA Marble @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Marble @BBL H2D.json" - }, - { - "name": "BETA PLA Marble @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Marble @BBL P1P.json" - }, - { - "name": "BETA PLA Marble @BBL A1", - "sub_path": "filament/BETA/BETA PLA Marble @BBL A1.json" - }, - { - "name": "BETA PLA Marble @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Marble @BBL A1M.json" - }, - { - "name": "BETA PLA Marble @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Marble @BBL X1C.json" - }, - { - "name": "BETA PLA Matte @base", - "sub_path": "filament/BETA/BETA PLA Matte @base.json" - }, - { - "name": "BETA PLA Matte @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Matte @BBL P1P.json" - }, - { - "name": "BETA PLA Matte @BBL A1", - "sub_path": "filament/BETA/BETA PLA Matte @BBL A1.json" - }, - { - "name": "BETA PLA Matte @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Matte @BBL A1M.json" - }, - { - "name": "BETA PLA Matte @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Matte @BBL H2D.json" - }, - { - "name": "BETA PLA Matte @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Matte @BBL X1C.json" - }, - { - "name": "BETA PLA Metal @base", - "sub_path": "filament/BETA/BETA PLA Metal @base.json" - }, - { - "name": "BETA PLA Metal @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Metal @BBL P1P.json" - }, - { - "name": "BETA PLA Metal @BBL A1", - "sub_path": "filament/BETA/BETA PLA Metal @BBL A1.json" - }, - { - "name": "BETA PLA Metal @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Metal @BBL A1M.json" - }, - { - "name": "BETA PLA Metal @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Metal @BBL H2D.json" - }, - { - "name": "BETA PLA Metal @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Metal @BBL X1C.json" - }, - { - "name": "BETA PLA Metallic @base", - "sub_path": "filament/BETA/BETA PLA Metallic @base.json" - }, - { - "name": "BETA PLA Metallic @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Metallic @BBL H2D.json" - }, - { - "name": "BETA PLA Metallic @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Metallic @BBL P1P.json" - }, - { - "name": "BETA PLA Metallic @BBL A1", - "sub_path": "filament/BETA/BETA PLA Metallic @BBL A1.json" - }, - { - "name": "BETA PLA Metallic @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Metallic @BBL A1M.json" - }, - { - "name": "BETA PLA Metallic @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Metallic @BBL X1C.json" - }, - { - "name": "BETA PLA PRO @base", - "sub_path": "filament/BETA/BETA PLA PRO @base.json" - }, - { - "name": "BETA PLA PRO @BBL P1P", - "sub_path": "filament/BETA/BETA PLA PRO @BBL P1P.json" - }, - { - "name": "BETA PLA PRO @BBL A1", - "sub_path": "filament/BETA/BETA PLA PRO @BBL A1.json" - }, - { - "name": "BETA PLA PRO @BBL A1M", - "sub_path": "filament/BETA/BETA PLA PRO @BBL A1M.json" - }, - { - "name": "BETA PLA PRO @BBL H2D", - "sub_path": "filament/BETA/BETA PLA PRO @BBL H2D.json" - }, - { - "name": "BETA PLA PRO @BBL X1C", - "sub_path": "filament/BETA/BETA PLA PRO @BBL X1C.json" - }, - { - "name": "BETA PLA Silk @base", - "sub_path": "filament/BETA/BETA PLA Silk @base.json" - }, - { - "name": "BETA PLA Silk @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Silk @BBL P1P.json" - }, - { - "name": "BETA PLA Silk @BBL A1", - "sub_path": "filament/BETA/BETA PLA Silk @BBL A1.json" - }, - { - "name": "BETA PLA Silk @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Silk @BBL A1M.json" - }, - { - "name": "BETA PLA Silk @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Silk @BBL H2D.json" - }, - { - "name": "BETA PLA Silk @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Silk @BBL X1C.json" - }, - { - "name": "BETA PLA Transparent @base", - "sub_path": "filament/BETA/BETA PLA Transparent @base.json" - }, - { - "name": "BETA PLA Transparent @BBL A1", - "sub_path": "filament/BETA/BETA PLA Transparent @BBL A1.json" - }, - { - "name": "BETA PLA Transparent @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Transparent @BBL A1M.json" - }, - { - "name": "BETA PLA Transparent @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Transparent @BBL H2D.json" - }, - { - "name": "BETA PLA Transparent @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Transparent @BBL P1P.json" - }, - { - "name": "BETA PLA Transparent @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Transparent @BBL X1C.json" - }, - { - "name": "BETA PLA UV Color Change @base", - "sub_path": "filament/BETA/BETA PLA UV Color Change @base.json" - }, - { - "name": "BETA PLA UV Color Change @BBL P1P", - "sub_path": "filament/BETA/BETA PLA UV Color Change @BBL P1P.json" - }, - { - "name": "BETA PLA UV Color Change @BBL A1", - "sub_path": "filament/BETA/BETA PLA UV Color Change @BBL A1.json" - }, - { - "name": "BETA PLA UV Color Change @BBL A1M", - "sub_path": "filament/BETA/BETA PLA UV Color Change @BBL A1M.json" - }, - { - "name": "BETA PLA UV Color Change @BBL H2D", - "sub_path": "filament/BETA/BETA PLA UV Color Change @BBL H2D.json" - }, - { - "name": "BETA PLA UV Color Change @BBL X1C", - "sub_path": "filament/BETA/BETA PLA UV Color Change @BBL X1C.json" - }, - { - "name": "BETA PLA Youth @base", - "sub_path": "filament/BETA/BETA PLA Youth @base.json" - }, - { - "name": "BETA PLA Youth @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Youth @BBL X1C.json" - }, - { - "name": "BETA PLA Youth @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Youth @BBL A1M.json" - }, - { - "name": "BETA PLA Youth @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Youth @BBL P1P.json" - }, - { - "name": "BETA PLA Youth @BBL A1", - "sub_path": "filament/BETA/BETA PLA Youth @BBL A1.json" - }, - { - "name": "BETA PLA Youth @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Youth @BBL H2D.json" - }, - { - "name": "BETA PLA-CF @base", - "sub_path": "filament/BETA/BETA PLA-CF @base.json" - }, - { - "name": "BETA PLA-CF @BBL A1", - "sub_path": "filament/BETA/BETA PLA-CF @BBL A1.json" - }, - { - "name": "BETA PLA-CF @BBL A1M", - "sub_path": "filament/BETA/BETA PLA-CF @BBL A1M.json" - }, - { - "name": "BETA PLA-CF @BBL H2D 0.4 nozzle", - "sub_path": "filament/BETA/BETA PLA-CF @BBL H2D 0.4 nozzle.json" - }, - { - "name": "BETA PLA-CF @BBL P1P", - "sub_path": "filament/BETA/BETA PLA-CF @BBL P1P.json" - }, - { - "name": "BETA PLA-CF @BBL X1C", - "sub_path": "filament/BETA/BETA PLA-CF @BBL X1C.json" - }, - { - "name": "BETA PLA High Temp @base", - "sub_path": "filament/BETA/BETA PLA High Temp @base.json" - }, - { - "name": "BETA PLA High Temp @BBL P1P", - "sub_path": "filament/BETA/BETA PLA High Temp @BBL P1P.json" - }, - { - "name": "BETA PLA High Temp @BBL X1C", - "sub_path": "filament/BETA/BETA PLA High Temp @BBL X1C.json" - }, - { - "name": "BETA PLA High Temp @BBL A1", - "sub_path": "filament/BETA/BETA PLA High Temp @BBL A1.json" - }, - { - "name": "BETA PLA High Temp @BBL A1M", - "sub_path": "filament/BETA/BETA PLA High Temp @BBL A1M.json" - }, - { - "name": "BETA PLA High Temp @BBL H2D", - "sub_path": "filament/BETA/BETA PLA High Temp @BBL H2D.json" - }, - { - "name": "BETA PLA Wood @base", - "sub_path": "filament/BETA/BETA PLA Wood @base.json" - }, - { - "name": "BETA PLA Wood @BBL A1", - "sub_path": "filament/BETA/BETA PLA Wood @BBL A1.json" - }, - { - "name": "BETA PLA Wood @BBL A1M", - "sub_path": "filament/BETA/BETA PLA Wood @BBL A1M.json" - }, - { - "name": "BETA PLA Wood @BBL H2D", - "sub_path": "filament/BETA/BETA PLA Wood @BBL H2D.json" - }, - { - "name": "BETA PLA Wood @BBL P1P", - "sub_path": "filament/BETA/BETA PLA Wood @BBL P1P.json" - }, - { - "name": "BETA PLA Wood @BBL X1C", - "sub_path": "filament/BETA/BETA PLA Wood @BBL X1C.json" - }, - { - "name": "BETA TPU Matte @base", - "sub_path": "filament/BETA/BETA TPU Matte @base.json" - }, - { - "name": "BETA TPU Matte @BBL A1", - "sub_path": "filament/BETA/BETA TPU Matte @BBL A1.json" - }, - { - "name": "BETA TPU Matte @BBL A1M", - "sub_path": "filament/BETA/BETA TPU Matte @BBL A1M.json" - }, - { - "name": "BETA TPU Matte @BBL H2D", - "sub_path": "filament/BETA/BETA TPU Matte @BBL H2D.json" - }, - { - "name": "BETA TPU Matte @BBL P1P", - "sub_path": "filament/BETA/BETA TPU Matte @BBL P1P.json" - }, - { - "name": "BETA TPU Matte @BBL X1C", - "sub_path": "filament/BETA/BETA TPU Matte @BBL X1C.json" - }, - { - "name": "BETA TPU 95A @base", - "sub_path": "filament/BETA/BETA TPU 95A @base.json" - }, - { - "name": "BETA TPU 95A @BBL A1", - "sub_path": "filament/BETA/BETA TPU 95A @BBL A1.json" - }, - { - "name": "BETA TPU 95A @BBL A1M", - "sub_path": "filament/BETA/BETA TPU 95A @BBL A1M.json" - }, - { - "name": "BETA TPU 95A @BBL H2D", - "sub_path": "filament/BETA/BETA TPU 95A @BBL H2D.json" - }, - { - "name": "BETA TPU 95A @BBL P1P", - "sub_path": "filament/BETA/BETA TPU 95A @BBL P1P.json" - }, - { - "name": "BETA TPU 95A @BBL X1C", - "sub_path": "filament/BETA/BETA TPU 95A @BBL X1C.json" - }, - { - "name": "BETA TPU 98A @base", - "sub_path": "filament/BETA/BETA TPU 98A @base.json" - }, - { - "name": "BETA TPU 98A @BBL A1", - "sub_path": "filament/BETA/BETA TPU 98A @BBL A1.json" - }, - { - "name": "BETA TPU 98A @BBL A1M", - "sub_path": "filament/BETA/BETA TPU 98A @BBL A1M.json" - }, - { - "name": "BETA TPU 98A @BBL H2D", - "sub_path": "filament/BETA/BETA TPU 98A @BBL H2D.json" - }, - { - "name": "BETA TPU 98A @BBL P1P", - "sub_path": "filament/BETA/BETA TPU 98A @BBL P1P.json" - }, - { - "name": "BETA TPU 98A @BBL X1C", - "sub_path": "filament/BETA/BETA TPU 98A @BBL X1C.json" - }, - { - "name": "BETA TPU 90A @base", - "sub_path": "filament/BETA/BETA TPU 90A @base.json" - }, - { - "name": "BETA TPU 90A @BBL A1", - "sub_path": "filament/BETA/BETA TPU 90A @BBL A1.json" - }, - { - "name": "BETA TPU 90A @BBL A1M", - "sub_path": "filament/BETA/BETA TPU 90A @BBL A1M.json" - }, - { - "name": "BETA TPU 90A @BBL H2D", - "sub_path": "filament/BETA/BETA TPU 90A @BBL H2D.json" - }, - { - "name": "BETA TPU 90A @BBL P1P", - "sub_path": "filament/BETA/BETA TPU 90A @BBL P1P.json" - }, - { - "name": "BETA TPU 90A @BBL X1C", - "sub_path": "filament/BETA/BETA TPU 90A @BBL X1C.json" - }, - { - "name": "BETA PLA High Speed @base", - "sub_path": "filament/BETA/BETA PLA High Speed @base.json" - }, - { - "name": "BETA PLA High Speed @BBL A1", - "sub_path": "filament/BETA/BETA PLA High Speed @BBL A1.json" - }, - { - "name": "BETA PLA High Speed @BBL A1M", - "sub_path": "filament/BETA/BETA PLA High Speed @BBL A1M.json" - }, - { - "name": "BETA PLA High Speed @BBL H2D", - "sub_path": "filament/BETA/BETA PLA High Speed @BBL H2D.json" - }, - { - "name": "BETA PLA High Speed @BBL P1P", - "sub_path": "filament/BETA/BETA PLA High Speed @BBL P1P.json" - }, - { - "name": "BETA PLA High Speed @BBL X1C", - "sub_path": "filament/BETA/BETA PLA High Speed @BBL X1C.json" - }, - { - "name": "BETA HIPS @base", - "sub_path": "filament/BETA/BETA HIPS @base.json" - }, - { - "name": "BETA HIPS @BBL H2D", - "sub_path": "filament/BETA/BETA HIPS @BBL H2D.json" - }, - { - "name": "BETA HIPS @BBL X1C", - "sub_path": "filament/BETA/BETA HIPS @BBL X1C.json" - }, - { - "name": "Bambu ABS @BBL X2D", - "sub_path": "filament/Bambu ABS @BBL X2D.json" - }, - { - "name": "Bambu ABS @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu ABS @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu ABS @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu ABS @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu ABS @BBL X2D 0.8 nozzle", - "sub_path": "filament/Bambu ABS @BBL X2D 0.8 nozzle.json" - }, - { - "name": "Bambu ABS-GF @BBL X2D", - "sub_path": "filament/Bambu ABS-GF @BBL X2D.json" - }, - { - "name": "Bambu ABS-GF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu ABS-GF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu Support for ABS @BBL X2D", - "sub_path": "filament/Bambu Support for ABS @BBL X2D.json" - }, - { - "name": "Bambu Support for ABS @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu Support for ABS @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic ABS @BBL X2D", - "sub_path": "filament/Generic ABS @BBL X2D.json" - }, - { - "name": "Generic ABS @BBL X2D 0.2 nozzle", - "sub_path": "filament/Generic ABS @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Generic ABS @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic ABS @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu ASA @BBL X2D", - "sub_path": "filament/Bambu ASA @BBL X2D.json" - }, - { - "name": "Bambu ASA @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu ASA @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu ASA @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu ASA @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu ASA-Aero @BBL X2D", - "sub_path": "filament/Bambu ASA-Aero @BBL X2D.json" - }, - { - "name": "Bambu ASA-Aero @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu ASA-Aero @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu ASA-CF @BBL X2D", - "sub_path": "filament/Bambu ASA-CF @BBL X2D.json" - }, - { - "name": "Bambu ASA-CF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu ASA-CF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic ASA @BBL X2D", - "sub_path": "filament/Generic ASA @BBL X2D.json" - }, - { - "name": "Generic ASA @BBL X2D 0.2 nozzle", - "sub_path": "filament/Generic ASA @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Generic ASA @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic ASA @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic BVOH @BBL X2D", - "sub_path": "filament/Generic BVOH @BBL X2D.json" - }, - { - "name": "Generic BVOH @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic BVOH @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic EVA @BBL X2D", - "sub_path": "filament/Generic EVA @BBL X2D.json" - }, - { - "name": "Generic EVA @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic EVA @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic HIPS @BBL X2D", - "sub_path": "filament/Generic HIPS @BBL X2D.json" - }, - { - "name": "Generic HIPS @BBL X2D 0.2 nozzle", - "sub_path": "filament/Generic HIPS @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Generic HIPS @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic HIPS @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PA-CF @BBL X2D", - "sub_path": "filament/Bambu PA-CF @BBL X2D.json" - }, - { - "name": "Bambu PA-CF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PA-CF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PA6-CF @BBL X2D", - "sub_path": "filament/Bambu PA6-CF @BBL X2D.json" - }, - { - "name": "Bambu PA6-CF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PA6-CF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PA6-GF @BBL X2D", - "sub_path": "filament/Bambu PA6-GF @BBL X2D.json" - }, - { - "name": "Bambu PA6-GF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PA6-GF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PAHT-CF @BBL X2D", - "sub_path": "filament/Bambu PAHT-CF @BBL X2D.json" - }, - { - "name": "Bambu PAHT-CF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PAHT-CF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu Support For PA/PET @BBL X2D", - "sub_path": "filament/Bambu Support For PA PET @BBL X2D.json" - }, - { - "name": "Bambu Support For PA/PET @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu Support For PA PET @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu Support G @BBL X2D", - "sub_path": "filament/Bambu Support G @BBL X2D.json" - }, - { - "name": "Bambu Support G @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu Support G @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PA @BBL X2D", - "sub_path": "filament/Generic PA @BBL X2D.json" - }, - { - "name": "Generic PA @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PA @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PA-CF @BBL X2D", - "sub_path": "filament/Generic PA-CF @BBL X2D.json" - }, - { - "name": "Generic PA-CF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PA-CF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PC @BBL X2D", - "sub_path": "filament/Bambu PC @BBL X2D.json" - }, - { - "name": "Bambu PC @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PC @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PC @BBL X2D 0.8 nozzle", - "sub_path": "filament/Bambu PC @BBL X2D 0.8 nozzle.json" - }, - { - "name": "Bambu PC FR @BBL X2D", - "sub_path": "filament/Bambu PC FR @BBL X2D.json" - }, - { - "name": "Bambu PC FR @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PC FR @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PC FR @BBL X2D 0.8 nozzle", - "sub_path": "filament/Bambu PC FR @BBL X2D 0.8 nozzle.json" - }, - { - "name": "Generic PC @BBL X2D", - "sub_path": "filament/Generic PC @BBL X2D.json" - }, - { - "name": "Generic PC @BBL X2D 0.2 nozzle", - "sub_path": "filament/Generic PC @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Generic PC @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PC @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PCTG @BBL X2D", - "sub_path": "filament/Generic PCTG @BBL X2D.json" - }, - { - "name": "Generic PCTG @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PCTG @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PE @BBL X2D", - "sub_path": "filament/Generic PE @BBL X2D.json" - }, - { - "name": "Generic PE @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PE @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PE-CF @BBL X2D", - "sub_path": "filament/Generic PE-CF @BBL X2D.json" - }, - { - "name": "Generic PE-CF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PE-CF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PET-CF @BBL X2D", - "sub_path": "filament/Bambu PET-CF @BBL X2D.json" - }, - { - "name": "Bambu PET-CF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PET-CF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PETG Basic @BBL X2D", - "sub_path": "filament/Bambu PETG Basic @BBL X2D.json" - }, - { - "name": "Bambu PETG Basic @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PETG Basic @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PETG Basic @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PETG Basic @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PETG HF @BBL X2D", - "sub_path": "filament/Bambu PETG HF @BBL X2D.json" - }, - { - "name": "Bambu PETG HF @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PETG HF @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PETG HF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PETG HF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PETG Translucent @BBL X2D", - "sub_path": "filament/Bambu PETG Translucent @BBL X2D.json" - }, - { - "name": "Bambu PETG Translucent @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PETG Translucent @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PETG Translucent @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PETG Translucent @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PETG Translucent @BBL X2D 0.8 nozzle", - "sub_path": "filament/Bambu PETG Translucent @BBL X2D 0.8 nozzle.json" - }, - { - "name": "Bambu PETG-CF @BBL X2D", - "sub_path": "filament/Bambu PETG-CF @BBL X2D.json" - }, - { - "name": "Bambu PETG-CF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PETG-CF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PETG-CF @BBL X2D 0.8 nozzle", - "sub_path": "filament/Bambu PETG-CF @BBL X2D 0.8 nozzle.json" - }, - { - "name": "Generic PETG @BBL X2D", - "sub_path": "filament/Generic PETG @BBL X2D.json" - }, - { - "name": "Generic PETG @BBL X2D 0.2 nozzle", - "sub_path": "filament/Generic PETG @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Generic PETG @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PETG @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PETG HF @BBL X2D", - "sub_path": "filament/Generic PETG HF @BBL X2D.json" - }, - { - "name": "Generic PETG HF @BBL X2D 0.2 nozzle", - "sub_path": "filament/Generic PETG HF @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Generic PETG HF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PETG HF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PETG-CF @BBL X2D", - "sub_path": "filament/Generic PETG-CF @BBL X2D.json" - }, - { - "name": "Generic PETG-CF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PETG-CF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PHA @BBL X2D", - "sub_path": "filament/Generic PHA @BBL X2D.json" - }, - { - "name": "Generic PHA @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PHA @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Aero @BBL X2D", - "sub_path": "filament/Bambu PLA Aero @BBL X2D.json" - }, - { - "name": "Bambu PLA Aero @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Aero @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Basic @BBL X2D", - "sub_path": "filament/Bambu PLA Basic @BBL X2D.json" - }, - { - "name": "Bambu PLA Basic @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PLA Basic @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PLA Basic @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Basic @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Dynamic @BBL X2D", - "sub_path": "filament/Bambu PLA Dynamic @BBL X2D.json" - }, - { - "name": "Bambu PLA Dynamic @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PLA Dynamic @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PLA Dynamic @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Dynamic @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Galaxy @BBL X2D", - "sub_path": "filament/Bambu PLA Galaxy @BBL X2D.json" - }, - { - "name": "Bambu PLA Galaxy @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PLA Galaxy @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PLA Galaxy @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Galaxy @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Glow @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PLA Glow @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PLA Glow @BBL X2D", - "sub_path": "filament/Bambu PLA Glow @BBL X2D.json" - }, - { - "name": "Bambu PLA Glow @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Glow @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Lite @BBL X2D", - "sub_path": "filament/Bambu PLA Lite @BBL X2D.json" - }, - { - "name": "Bambu PLA Lite @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PLA Lite @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PLA Lite @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Lite @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Marble @BBL X2D", - "sub_path": "filament/Bambu PLA Marble @BBL X2D.json" - }, - { - "name": "Bambu PLA Marble @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Marble @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Matte @BBL X2D", - "sub_path": "filament/Bambu PLA Matte @BBL X2D.json" - }, - { - "name": "Bambu PLA Matte @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PLA Matte @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PLA Matte @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Matte @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Metal @BBL X2D", - "sub_path": "filament/Bambu PLA Metal @BBL X2D.json" - }, - { - "name": "Bambu PLA Metal @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PLA Metal @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PLA Metal @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Metal @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Silk @BBL X2D", - "sub_path": "filament/Bambu PLA Silk @BBL X2D.json" - }, - { - "name": "Bambu PLA Silk @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PLA Silk @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PLA Silk @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Silk @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Silk+ @BBL X2D", - "sub_path": "filament/Bambu PLA Silk+ @BBL X2D.json" - }, - { - "name": "Bambu PLA Silk+ @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PLA Silk+ @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PLA Silk+ @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Silk+ @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Sparkle @BBL X2D", - "sub_path": "filament/Bambu PLA Sparkle @BBL X2D.json" - }, - { - "name": "Bambu PLA Sparkle @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Sparkle @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Tough @BBL X2D", - "sub_path": "filament/Bambu PLA Tough @BBL X2D.json" - }, - { - "name": "Bambu PLA Tough @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PLA Tough @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PLA Tough @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Tough @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Tough+ @BBL X2D", - "sub_path": "filament/Bambu PLA Tough+ @BBL X2D.json" - }, - { - "name": "Bambu PLA Tough+ @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PLA Tough+ @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PLA Tough+ @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Tough+ @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Translucent @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu PLA Translucent @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu PLA Translucent @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Translucent @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA Translucent @BBL X2D 0.6 nozzle", - "sub_path": "filament/Bambu PLA Translucent @BBL X2D 0.6 nozzle.json" - }, - { - "name": "Bambu PLA Translucent @BBL X2D 0.8 nozzle", - "sub_path": "filament/Bambu PLA Translucent @BBL X2D 0.8 nozzle.json" - }, - { - "name": "Bambu PLA Wood @BBL X2D", - "sub_path": "filament/Bambu PLA Wood @BBL X2D.json" - }, - { - "name": "Bambu PLA Wood @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA Wood @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PLA-CF @BBL X2D", - "sub_path": "filament/Bambu PLA-CF @BBL X2D.json" - }, - { - "name": "Bambu PLA-CF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PLA-CF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu Support For PLA @BBL X2D", - "sub_path": "filament/Bambu Support For PLA @BBL X2D.json" - }, - { - "name": "Bambu Support For PLA @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu Support For PLA @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu Support For PLA @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu Support For PLA @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu Support For PLA/PETG @BBL X2D", - "sub_path": "filament/Bambu Support For PLA-PETG @BBL X2D.json" - }, - { - "name": "Bambu Support For PLA/PETG @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu Support For PLA-PETG @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu Support For PLA/PETG @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu Support For PLA-PETG @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu Support W @BBL X2D", - "sub_path": "filament/Bambu Support W @BBL X2D.json" - }, - { - "name": "Bambu Support W @BBL X2D 0.2 nozzle", - "sub_path": "filament/Bambu Support W @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Bambu Support W @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu Support W @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PLA @BBL X2D", - "sub_path": "filament/Generic PLA @BBL X2D.json" - }, - { - "name": "Generic PLA @BBL X2D 0.2 nozzle", - "sub_path": "filament/Generic PLA @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Generic PLA @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PLA @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PLA High Speed @BBL X2D 0.2 nozzle", - "sub_path": "filament/Generic PLA High Speed @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Generic PLA High Speed @BBL X2D", - "sub_path": "filament/Generic PLA High Speed @BBL X2D.json" - }, - { - "name": "Generic PLA High Speed @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PLA High Speed @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PLA Silk @BBL X2D", - "sub_path": "filament/Generic PLA Silk @BBL X2D.json" - }, - { - "name": "Generic PLA Silk @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PLA Silk @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PLA-CF @BBL X2D", - "sub_path": "filament/Generic PLA-CF @BBL X2D.json" - }, - { - "name": "Generic PLA-CF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PLA-CF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PP @BBL X2D", - "sub_path": "filament/Generic PP @BBL X2D.json" - }, - { - "name": "Generic PP @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PP @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PP-CF @BBL X2D", - "sub_path": "filament/Generic PP-CF @BBL X2D.json" - }, - { - "name": "Generic PP-CF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PP-CF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PP-GF @BBL X2D", - "sub_path": "filament/Generic PP-GF @BBL X2D.json" - }, - { - "name": "Generic PP-GF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PP-GF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PPA-CF @BBL X2D", - "sub_path": "filament/Bambu PPA-CF @BBL X2D.json" - }, - { - "name": "Bambu PPA-CF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PPA-CF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PPA-CF @BBL X2D", - "sub_path": "filament/Generic PPA-CF @BBL X2D.json" - }, - { - "name": "Generic PPA-CF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PPA-CF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PPA-GF @BBL X2D", - "sub_path": "filament/Generic PPA-GF @BBL X2D.json" - }, - { - "name": "Generic PPA-GF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PPA-GF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu PVA @BBL X2D", - "sub_path": "filament/Bambu PVA @BBL X2D.json" - }, - { - "name": "Bambu PVA @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu PVA @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic PVA @BBL X2D", - "sub_path": "filament/Generic PVA @BBL X2D.json" - }, - { - "name": "Generic PVA @BBL X2D 0.2 nozzle", - "sub_path": "filament/Generic PVA @BBL X2D 0.2 nozzle.json" - }, - { - "name": "Generic PVA @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic PVA @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu TPU 85A @BBL X2D", - "sub_path": "filament/Bambu TPU 85A @BBL X2D.json" - }, - { - "name": "Bambu TPU 85A @BBL X2D 0.8 nozzle", - "sub_path": "filament/Bambu TPU 85A @BBL X2D 0.8 nozzle.json" - }, - { - "name": "Bambu TPU 90A @BBL X2D", - "sub_path": "filament/Bambu TPU 90A @BBL X2D.json" - }, - { - "name": "Bambu TPU 90A @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu TPU 90A @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu TPU 90A @BBL X2D 0.8 nozzle", - "sub_path": "filament/Bambu TPU 90A @BBL X2D 0.8 nozzle.json" - }, - { - "name": "Bambu TPU 95A @BBL X2D", - "sub_path": "filament/Bambu TPU 95A @BBL X2D.json" - }, - { - "name": "Bambu TPU 95A @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu TPU 95A @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu TPU 95A HF @BBL X2D", - "sub_path": "filament/Bambu TPU 95A HF @BBL X2D.json" - }, - { - "name": "Bambu TPU 95A HF @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu TPU 95A HF @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Bambu TPU for AMS @BBL X2D", - "sub_path": "filament/Bambu TPU for AMS @BBL X2D.json" - }, - { - "name": "Bambu TPU for AMS @BBL X2D 0.4 nozzle", - "sub_path": "filament/Bambu TPU for AMS @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic TPU @BBL X2D", - "sub_path": "filament/Generic TPU @BBL X2D.json" - }, - { - "name": "Generic TPU @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic TPU @BBL X2D 0.4 nozzle.json" - }, - { - "name": "Generic TPU for AMS @BBL X2D", - "sub_path": "filament/Generic TPU for AMS @BBL X2D.json" - }, - { - "name": "Generic TPU for AMS @BBL X2D 0.4 nozzle", - "sub_path": "filament/Generic TPU for AMS @BBL X2D 0.4 nozzle.json" } ], "machine_list": [ @@ -9535,6 +9767,10 @@ "name": "Bambu Lab H2D Pro 0.4 nozzle", "sub_path": "machine/Bambu Lab H2D Pro 0.4 nozzle.json" }, + { + "name": "Bambu Lab X2D 0.4 nozzle", + "sub_path": "machine/Bambu Lab X2D 0.4 nozzle.json" + }, { "name": "Bambu Lab A1 0.2 nozzle", "sub_path": "machine/Bambu Lab A1 0.2 nozzle.json" @@ -9667,10 +9903,6 @@ "name": "Bambu Lab H2D Pro 0.8 nozzle", "sub_path": "machine/Bambu Lab H2D Pro 0.8 nozzle.json" }, - { - "name": "Bambu Lab X2D 0.4 nozzle", - "sub_path": "machine/Bambu Lab X2D 0.4 nozzle.json" - }, { "name": "Bambu Lab X2D 0.2 nozzle", "sub_path": "machine/Bambu Lab X2D 0.2 nozzle.json" diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF10 @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF10 @BBL X1.json new file mode 100644 index 0000000000..225e12d539 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF10 @BBL X1.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Fiberon PA12-CF10 @BBL X1", + "inherits": "Fiberon PA12-CF10 @base", + "from": "system", + "setting_id": "GFSL56_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF10 @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF10 @base.json new file mode 100644 index 0000000000..368abf5570 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF10 @base.json @@ -0,0 +1,77 @@ +{ + "type": "filament", + "name": "Fiberon PA12-CF10 @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFL56", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "eng_plate_temp": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "40" + ], + "fan_cooling_layer_time": [ + "15" + ], + "fan_max_speed": [ + "100" + ], + "filament_cost": [ + "99.99" + ], + "filament_density": [ + "1.06" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "14" + ], + "filament_type": [ + "PA-CF" + ], + "filament_vendor": [ + "Polymaker" + ], + "full_fan_speed_layer": [ + "2" + ], + "hot_plate_temp": [ + "40" + ], + "hot_plate_temp_initial_layer": [ + "40" + ], + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature_range_low": [ + "280" + ], + "overhang_fan_speed": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "55" + ], + "textured_plate_temp": [ + "40" + ], + "textured_plate_temp_initial_layer": [ + "40" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF20 @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF20 @BBL X1.json new file mode 100644 index 0000000000..ce552a17e6 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF20 @BBL X1.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Fiberon PA6-CF20 @BBL X1", + "inherits": "Fiberon PA6-CF20 @base", + "from": "system", + "setting_id": "GFSL57_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF20 @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF20 @base.json new file mode 100644 index 0000000000..65fee6a5bb --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF20 @base.json @@ -0,0 +1,74 @@ +{ + "type": "filament", + "name": "Fiberon PA6-CF20 @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFL57", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "eng_plate_temp": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "40" + ], + "fan_cooling_layer_time": [ + "15" + ], + "fan_max_speed": [ + "100" + ], + "filament_cost": [ + "83.99" + ], + "filament_density": [ + "1.17" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "14" + ], + "filament_type": [ + "PA6-CF" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "40" + ], + "hot_plate_temp_initial_layer": [ + "40" + ], + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature_range_low": [ + "280" + ], + "overhang_fan_speed": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "74.2" + ], + "textured_plate_temp": [ + "40" + ], + "textured_plate_temp_initial_layer": [ + "40" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF25 @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF25 @BBL X1.json new file mode 100644 index 0000000000..7c03b332b7 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF25 @BBL X1.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Fiberon PA6-GF25 @BBL X1", + "inherits": "Fiberon PA6-GF25 @base", + "from": "system", + "setting_id": "GFSL58_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF25 @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF25 @base.json new file mode 100644 index 0000000000..af2b6d92e1 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF25 @base.json @@ -0,0 +1,77 @@ +{ + "type": "filament", + "name": "Fiberon PA6-GF25 @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFL58", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "eng_plate_temp": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "40" + ], + "fan_cooling_layer_time": [ + "15" + ], + "fan_max_speed": [ + "100" + ], + "filament_cost": [ + "63.99" + ], + "filament_density": [ + "1.2" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PA-GF" + ], + "filament_vendor": [ + "Polymaker" + ], + "full_fan_speed_layer": [ + "2" + ], + "hot_plate_temp": [ + "40" + ], + "hot_plate_temp_initial_layer": [ + "40" + ], + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature_range_low": [ + "280" + ], + "overhang_fan_speed": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "70.4" + ], + "textured_plate_temp": [ + "40" + ], + "textured_plate_temp_initial_layer": [ + "40" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF15 @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF15 @BBL X1.json new file mode 100644 index 0000000000..a33b87e835 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF15 @BBL X1.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Fiberon PA612-CF15 @BBL X1", + "inherits": "Fiberon PA612-CF15 @base", + "from": "system", + "setting_id": "GFSL59_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF15 @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF15 @base.json new file mode 100644 index 0000000000..dc7194aad0 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF15 @base.json @@ -0,0 +1,53 @@ +{ + "type": "filament", + "name": "Fiberon PA612-CF15 @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFL59", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "fan_cooling_layer_time": [ + "5" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "94.99" + ], + "filament_density": [ + "1.03" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_type": [ + "PA-CF" + ], + "filament_vendor": [ + "Polymaker" + ], + "full_fan_speed_layer": [ + "2" + ], + "nozzle_temperature_range_low": [ + "250" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "206.2" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF17 @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF17 @BBL X1.json new file mode 100644 index 0000000000..4661fc9dfc --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF17 @BBL X1.json @@ -0,0 +1,33 @@ +{ + "type": "filament", + "name": "Fiberon PET-CF17 @BBL X1", + "inherits": "Fiberon PET-CF17 @base", + "from": "system", + "setting_id": "GFSL60_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "required_nozzle_HRC": [ + "40" + ], + "supertack_plate_temp": [ + "80" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "filament_adhesiveness_category": [ + "800" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF17 @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF17 @base.json new file mode 100644 index 0000000000..adcbf5c9ef --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF17 @base.json @@ -0,0 +1,86 @@ +{ + "type": "filament", + "name": "Fiberon PET-CF17 @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "GFL60", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "242" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "0" + ], + "filament_cost": [ + "89.99" + ], + "filament_density": [ + "1.34" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PET-CF" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature_range_high": [ + "300" + ], + "nozzle_temperature_range_low": [ + "270" + ], + "overhang_fan_speed": [ + "70" + ], + "slow_down_layer_time": [ + "5" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "79.3" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-ESD @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-ESD @BBL X1.json new file mode 100644 index 0000000000..e348b1e22f --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-ESD @BBL X1.json @@ -0,0 +1,33 @@ +{ + "type": "filament", + "name": "Fiberon PETG-ESD @BBL X1", + "inherits": "Fiberon PETG-ESD @base", + "from": "system", + "setting_id": "GFSL06_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ], + "overhang_fan_speed": [ + "70" + ], + "filament_cost": [ + "29.99" + ], + "bed_type": [ + "Cool Plate" + ], + "fan_max_speed": [ + "80" + ], + "temperature_vitrification": [ + "77" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF08 @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF08 @BBL X1.json new file mode 100644 index 0000000000..264472679c --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF08 @BBL X1.json @@ -0,0 +1,92 @@ +{ + "type": "filament", + "name": "Fiberon PETG-rCF08 @BBL X1", + "inherits": "Fiberon PETG-rCF08 @base", + "from": "system", + "setting_id": "GFSL61_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "required_nozzle_HRC": [ + "40" + ], + "filament_flush_temp": [ + "0" + ], + "filament_flush_volumetric_speed": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_ramming_volumetric_speed": [ + "-1" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ], + "filament_pre_cooling_temperature": [ + "0" + ], + "filament_ramming_travel_time": [ + "0" + ], + "filament_adaptive_volumetric_speed": [ + "0" + ], + "long_retractions_when_ec": [ + "0" + ], + "retraction_distances_when_ec": [ + "0" + ], + "volumetric_speed_coefficients": [ + "0 0 0 0 0 0" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF08 @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF08 @base.json new file mode 100644 index 0000000000..da9cdeb43c --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF08 @base.json @@ -0,0 +1,101 @@ +{ + "type": "filament", + "name": "Fiberon PETG-rCF08 @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "GFL61", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "12" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "0" + ], + "filament_cost": [ + "39.99" + ], + "filament_density": [ + "1.3" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PETG-CF" + ], + "filament_vendor": [ + "Polymaker" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "270" + ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "overhang_fan_speed": [ + "70" + ], + "overhang_fan_threshold": [ + "95%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "2" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "69.7" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL A1.json index 45b9f9383a..ec927bbc52 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL A1.json @@ -10,19 +10,49 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "24" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "temperature_vitrification": [ + "58.2" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL A1M.json index 20846325aa..4857f27375 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL A1M.json @@ -10,19 +10,49 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "24" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "temperature_vitrification": [ + "58.2" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL P1P.json index 1585bcdd58..a33f7058de 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL P1P.json @@ -10,19 +10,46 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "24" + "textured_plate_temp": [ + "60" ], - "slow_down_layer_time": [ - "4" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "58.2" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL X1.json index 00b2549c8d..2251c3a170 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @BBL X1.json @@ -10,19 +10,46 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "24" + "textured_plate_temp": [ + "60" ], - "slow_down_layer_time": [ - "4" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "58.2" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL A1.json index d740f1ff81..8460996ce9 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL A1.json @@ -10,19 +10,46 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.95" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "16" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "temperature_vitrification": [ + "62.5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL A1M.json index 6918273b71..c592bdd1da 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL A1M.json @@ -10,19 +10,46 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.95" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "16" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "temperature_vitrification": [ + "62.5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL P1P.json index efa40c4fa2..4f802b2f28 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL P1P.json @@ -10,19 +10,43 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.95" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "16" + "textured_plate_temp": [ + "60" ], - "slow_down_layer_time": [ - "4" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "62.5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL X1.json index 0ba00b78e0..836f8c4cc7 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @BBL X1.json @@ -10,16 +10,43 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.95" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "16" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "62.5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL A1.json index fdd3244d62..6a34b19049 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL A1.json @@ -10,19 +10,43 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL A1M.json index 137b7fa824..74aa730a03 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL A1M.json @@ -10,19 +10,43 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL P1P.json index f34dc3c5a3..97c3558b2c 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL P1P.json @@ -10,19 +10,43 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "10" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL X1.json index f5cd673597..ef1c0886e7 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @BBL X1.json @@ -10,19 +10,40 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "textured_plate_temp": [ + "60" ], - "slow_down_layer_time": [ - "4" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL A1.json index fc959a4a0b..2201897336 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL A1.json @@ -10,19 +10,43 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL A1M.json index c0c3e66bc9..29a115d824 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL A1M.json @@ -10,19 +10,43 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL P1P.json index fc9b18c88d..a5bda6970b 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL P1P.json @@ -10,19 +10,43 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "10" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL X1.json index a8a66ff293..c36bf6bf63 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @BBL X1.json @@ -10,19 +10,40 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_max_speed": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "textured_plate_temp": [ + "60" ], - "slow_down_layer_time": [ - "4" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL A1.json index 1d100eb6be..29aa7205ee 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL A1.json @@ -10,22 +10,43 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL A1M.json index 90b6d1971f..d07309eef6 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL A1M.json @@ -10,22 +10,43 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL P1P.json index 2df18dc7f6..c81ef58f9c 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL P1P.json @@ -10,22 +10,43 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "10" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL X1.json index 7c551dcbb1..10701cfc01 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @BBL X1.json @@ -10,22 +10,40 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" ], - "slow_down_layer_time": [ - "4" + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL A1.json index 01098145c8..4da92b5a04 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL A1.json @@ -10,22 +10,43 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL A1M.json index f24b5317d3..e121d53f7d 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL A1M.json @@ -10,22 +10,43 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL P1P.json index dbaf7101e5..f15189902b 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL P1P.json @@ -10,22 +10,43 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "10" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL X1.json index 174dd27290..db9dcf9269 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @BBL X1.json @@ -10,22 +10,40 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" ], - "slow_down_layer_time": [ - "4" + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL A1.json index d68af37d9b..e18cf6058f 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL A1.json @@ -10,19 +10,52 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], "fan_cooling_layer_time": [ "80" ], + "filament_density": [ + "1.37" + ], + "bed_type": [ + "Cool Plate" + ], "fan_max_speed": [ "80" ], "fan_min_speed": [ "60" ], - "filament_max_volumetric_speed": [ - "22" + "slow_down_min_speed": [ + "5" ], - "slow_down_layer_time": [ - "8" + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL A1M.json index 32742ece66..0cddd47a22 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL A1M.json @@ -10,19 +10,52 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], "fan_cooling_layer_time": [ "80" ], + "filament_density": [ + "1.37" + ], + "bed_type": [ + "Cool Plate" + ], "fan_max_speed": [ "80" ], "fan_min_speed": [ "60" ], - "filament_max_volumetric_speed": [ - "22" + "slow_down_min_speed": [ + "5" ], - "slow_down_layer_time": [ - "8" + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL P1P.json index 4dfe9f2b9e..e67d08514c 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL P1P.json @@ -10,19 +10,49 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], "fan_cooling_layer_time": [ "80" ], - "fan_max_speed": [ - "100" + "filament_density": [ + "1.37" + ], + "bed_type": [ + "Cool Plate" ], "fan_min_speed": [ "50" ], - "filament_max_volumetric_speed": [ - "22" + "slow_down_min_speed": [ + "5" ], - "slow_down_layer_time": [ - "8" + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL X1.json index cf9888f0df..8f85dff8df 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @BBL X1.json @@ -10,19 +10,43 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "22" + "textured_plate_temp": [ + "60" ], - "slow_down_layer_time": [ - "8" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_density": [ + "1.37" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL A1.json index 7f19ee82f2..905b6e8624 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL A1.json @@ -10,19 +10,55 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], "fan_cooling_layer_time": [ "80" ], + "filament_cost": [ + "21.99" + ], + "filament_density": [ + "1.37" + ], + "bed_type": [ + "Cool Plate" + ], "fan_max_speed": [ "80" ], "fan_min_speed": [ "60" ], - "filament_max_volumetric_speed": [ - "22" + "slow_down_min_speed": [ + "5" ], - "slow_down_layer_time": [ - "8" + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL A1M.json index f309b02f40..2bd26f4411 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL A1M.json @@ -10,19 +10,55 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], "fan_cooling_layer_time": [ "80" ], + "filament_cost": [ + "21.99" + ], + "filament_density": [ + "1.37" + ], + "bed_type": [ + "Cool Plate" + ], "fan_max_speed": [ "80" ], "fan_min_speed": [ "60" ], - "filament_max_volumetric_speed": [ - "22" + "slow_down_min_speed": [ + "5" ], - "slow_down_layer_time": [ - "8" + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL P1P.json index ec2e229bdd..4100fe84ab 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL P1P.json @@ -10,19 +10,52 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], "fan_cooling_layer_time": [ "80" ], - "fan_max_speed": [ - "100" + "filament_cost": [ + "21.99" + ], + "filament_density": [ + "1.37" + ], + "bed_type": [ + "Cool Plate" ], "fan_min_speed": [ "50" ], - "filament_max_volumetric_speed": [ - "22" + "slow_down_min_speed": [ + "5" ], - "slow_down_layer_time": [ - "8" + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL X1.json index c4e665c830..6901a33b60 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @BBL X1.json @@ -10,19 +10,46 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "22" + "textured_plate_temp": [ + "60" ], - "slow_down_layer_time": [ - "8" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_cost": [ + "21.99" + ], + "filament_density": [ + "1.37" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL A1.json index ba006ef5a9..546e7c323c 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL A1.json @@ -10,22 +10,43 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL A1M.json index 8607acfa81..f96e849799 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL A1M.json @@ -10,22 +10,43 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL P1P.json index ec17b37810..a386ec3306 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL P1P.json @@ -10,22 +10,43 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "10" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL X1.json index 6240fd7950..ca62255017 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @BBL X1.json @@ -10,22 +10,40 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" ], - "slow_down_layer_time": [ - "4" + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL A1.json index 6bf4327c1d..cfb6c3f3d3 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL A1.json @@ -10,22 +10,46 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_cost": [ + "29.99" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL A1M.json index 492b1efa54..d970f6b468 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL A1M.json @@ -10,22 +10,46 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_cost": [ + "29.99" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL P1P.json index c8f8b61654..c09699ecd7 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL P1P.json @@ -10,22 +10,46 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_cost": [ + "29.99" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "10" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL X1.json index 8b20da2c25..4a08ef9ec7 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @BBL X1.json @@ -10,22 +10,43 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" ], - "slow_down_layer_time": [ - "4" + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_cost": [ + "29.99" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL A1.json index 7d6e25c3ca..057f04d232 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL A1.json @@ -1,7 +1,6 @@ { "type": "filament", "name": "Panchroma PLA Satin @BBL A1", - "renamed_from": "Panchroma PLA Stain @BBL A1", "inherits": "Panchroma PLA Satin @base", "from": "system", "setting_id": "GFSPM005_00", @@ -11,22 +10,40 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.95" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "16" + "cool_plate_temp_initial_layer": [ + "60" ], - "slow_down_layer_time": [ + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ "5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL A1M.json index bdcfca5d99..4492871b7c 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL A1M.json @@ -1,7 +1,6 @@ { "type": "filament", "name": "Panchroma PLA Satin @BBL A1M", - "renamed_from": "Panchroma PLA Stain @BBL A1M", "inherits": "Panchroma PLA Satin @base", "from": "system", "setting_id": "GFSPM005_02", @@ -11,22 +10,40 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.95" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "16" + "cool_plate_temp_initial_layer": [ + "60" ], - "slow_down_layer_time": [ + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ "5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL P1P.json index 2e7a11004a..39c5f418f0 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL P1P.json @@ -1,7 +1,6 @@ { "type": "filament", "name": "Panchroma PLA Satin @BBL P1P", - "renamed_from": "Panchroma PLA Stain @BBL P1P", "inherits": "Panchroma PLA Satin @base", "from": "system", "setting_id": "GFSPM005_04", @@ -11,22 +10,43 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.95" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "16" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "15" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL X1.json index 955e6d572e..c5720db9ae 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @BBL X1.json @@ -1,7 +1,6 @@ { "type": "filament", "name": "Panchroma PLA Satin @BBL X1", - "renamed_from": "Panchroma PLA Stain @BBL X1", "inherits": "Panchroma PLA Satin @base", "from": "system", "setting_id": "GFSPM005_06", @@ -11,22 +10,43 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.95" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "16" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "15" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @base.json index 3c998b7c45..6af2ad1bbe 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @base.json @@ -1,7 +1,6 @@ { "type": "filament", "name": "Panchroma PLA Satin @base", - "renamed_from": "Panchroma PLA Stain @base", "inherits": "fdm_filament_pla", "from": "system", "filament_id": "GFPM005", diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL A1.json index 2ec6e35e74..964735c284 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL A1.json @@ -10,22 +10,55 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], "fan_cooling_layer_time": [ "80" ], + "filament_density": [ + "1.34" + ], + "bed_type": [ + "Cool Plate" + ], "fan_max_speed": [ "80" ], "fan_min_speed": [ "60" ], - "filament_flow_ratio": [ - "0.98" + "slow_down_min_speed": [ + "5" ], - "filament_max_volumetric_speed": [ - "16" + "temperature_vitrification": [ + "58.2" ], - "slow_down_layer_time": [ - "8" + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL A1M.json index 21fd5e2100..ea303d2dcf 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL A1M.json @@ -10,22 +10,55 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], "fan_cooling_layer_time": [ "80" ], + "filament_density": [ + "1.34" + ], + "bed_type": [ + "Cool Plate" + ], "fan_max_speed": [ "80" ], "fan_min_speed": [ "60" ], - "filament_flow_ratio": [ - "0.98" + "slow_down_min_speed": [ + "5" ], - "filament_max_volumetric_speed": [ - "16" + "temperature_vitrification": [ + "58.2" ], - "slow_down_layer_time": [ - "8" + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL P1P.json index 4b69b6f390..8523bbb0cc 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL P1P.json @@ -10,22 +10,46 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "16" + "cool_plate_temp_initial_layer": [ + "60" ], - "slow_down_layer_time": [ - "8" + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_density": [ + "1.34" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "58.2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL X1.json index 16d7947087..8bb1c8a001 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @BBL X1.json @@ -10,22 +10,46 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "16" + "cool_plate_temp_initial_layer": [ + "60" ], - "slow_down_layer_time": [ - "8" + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_density": [ + "1.34" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "58.2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL A1.json index 5991483aa9..7195ee8aee 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL A1.json @@ -10,22 +10,43 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL A1M.json index 198d6be0c0..86702002c9 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL A1M.json @@ -10,22 +10,43 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL P1P.json index cec63cf699..5a814b235b 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL P1P.json @@ -10,22 +10,43 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "10" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL X1.json index 79b868b884..6d22d51867 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @BBL X1.json @@ -10,22 +10,40 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" ], - "slow_down_layer_time": [ - "4" + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL A1.json index 2b94f78786..aaa1caeb72 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL A1.json @@ -10,22 +10,49 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_cost": [ + "29.99" ], "filament_max_volumetric_speed": [ - "16" + "20" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL A1M.json index 4864a558a7..af56eb9d0b 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL A1M.json @@ -10,22 +10,49 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_cost": [ + "29.99" ], "filament_max_volumetric_speed": [ - "16" + "20" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL P1P.json index 3a4d9e64f5..7c6352f796 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL P1P.json @@ -10,22 +10,49 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_cost": [ + "29.99" ], "filament_max_volumetric_speed": [ - "16" + "20" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "10" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL X1.json index d07c761e6a..e4c5264897 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @BBL X1.json @@ -10,22 +10,46 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_cost": [ + "29.99" ], "filament_max_volumetric_speed": [ - "16" + "20" ], - "slow_down_layer_time": [ - "4" + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL A1.json index c998b6c002..ebc5d11ea1 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL A1.json @@ -10,22 +10,43 @@ "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL A1M.json index 161b31f8ea..2d62c7b9bd 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL A1M.json @@ -10,22 +10,43 @@ "Bambu Lab A1 mini 0.6 nozzle", "Bambu Lab A1 mini 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "2" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL P1P.json index e39b37c12c..795fa3ded8 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL P1P.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL P1P.json @@ -10,22 +10,43 @@ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "10" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL X1.json index 9ac498c983..c2bc0b9eda 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @BBL X1.json @@ -10,22 +10,40 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "fan_cooling_layer_time": [ - "100" + "cool_plate_temp": [ + "60" ], - "fan_max_speed": [ - "100" + "eng_plate_temp": [ + "60" ], - "fan_min_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "filament_flow_ratio": [ - "0.98" + "textured_plate_temp": [ + "60" ], - "filament_max_volumetric_speed": [ - "20" + "cool_plate_temp_initial_layer": [ + "60" ], - "slow_down_layer_time": [ - "4" + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL A1.json new file mode 100644 index 0000000000..b45a5cbad4 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL A1.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite CosPLA @BBL A1", + "inherits": "PolyLite CosPLA @base", + "from": "system", + "setting_id": "GFSL62_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 0.4 nozzle", + "Bambu Lab A1 0.6 nozzle", + "Bambu Lab A1 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL A1M.json new file mode 100644 index 0000000000..679b39ff18 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL A1M.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite CosPLA @BBL A1M", + "inherits": "PolyLite CosPLA @base", + "from": "system", + "setting_id": "GFSL62_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 mini 0.4 nozzle", + "Bambu Lab A1 mini 0.6 nozzle", + "Bambu Lab A1 mini 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL P1P.json new file mode 100644 index 0000000000..ef0e9ae3a6 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL P1P.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyLite CosPLA @BBL P1P", + "inherits": "PolyLite CosPLA @base", + "from": "system", + "setting_id": "GFSL62_02", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ], + "slow_down_layer_time": [ + "15" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL X1.json new file mode 100644 index 0000000000..7442729e32 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @BBL X1.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyLite CosPLA @BBL X1", + "inherits": "PolyLite CosPLA @base", + "from": "system", + "setting_id": "GFSL62_03", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ], + "slow_down_layer_time": [ + "15" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @base.json new file mode 100644 index 0000000000..18f38f0c68 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @base.json @@ -0,0 +1,71 @@ +{ + "type": "filament", + "name": "PolyLite CosPLA @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL62", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "20.99" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "slow_down_layer_time": [ + "5" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "59" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @BBL A1.json index ab5335b2f9..f52c8e2011 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @BBL A1.json @@ -5,36 +5,63 @@ "from": "system", "setting_id": "GFSL00_02", "instantiation": "true", - "fan_cooling_layer_time": [ - "80" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "60" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "hot_plate_temp": [ - "65" - ], - "hot_plate_temp_initial_layer": [ - "65" - ], - "slow_down_layer_time": [ - "8" - ], - "textured_plate_temp": [ - "65" - ], - "textured_plate_temp_initial_layer": [ - "65" - ], "compatible_printers": [ "Bambu Lab A1 0.4 nozzle", "Bambu Lab A1 0.6 nozzle", "Bambu Lab A1 0.8 nozzle" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "slow_down_layer_time": [ + "2" + ], + "temperature_vitrification": [ + "61" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @BBL A1M.json index 38db40aced..57b3ab4e56 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @BBL A1M.json @@ -5,36 +5,63 @@ "from": "system", "setting_id": "GFSL00_00", "instantiation": "true", - "fan_cooling_layer_time": [ - "80" + "compatible_printers": [ + "Bambu Lab A1 mini 0.4 nozzle", + "Bambu Lab A1 mini 0.6 nozzle", + "Bambu Lab A1 mini 0.8 nozzle" ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ + "cool_plate_temp": [ "60" ], - "filament_max_volumetric_speed": [ - "15" + "eng_plate_temp": [ + "60" ], "hot_plate_temp": [ "60" ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], "hot_plate_temp_initial_layer": [ "60" ], - "slow_down_layer_time": [ - "8" - ], - "textured_plate_temp": [ - "65" - ], "textured_plate_temp_initial_layer": [ - "65" + "60" ], - "compatible_printers": [ - "Bambu Lab A1 mini 0.4 nozzle", - "Bambu Lab A1 mini 0.6 nozzle", - "Bambu Lab A1 mini 0.8 nozzle" + "overhang_fan_speed": [ + "75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "slow_down_layer_time": [ + "2" + ], + "temperature_vitrification": [ + "61" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @BBL X1.json index dbacedc4be..08bdd474a4 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @BBL X1.json @@ -5,123 +5,60 @@ "from": "system", "setting_id": "GFSL23", "instantiation": "true", - "filament_max_volumetric_speed": [ - "15", - "15" - ], - "filament_flow_ratio": [ - "0.95", - "0.95" - ], - "filament_deretraction_speed": [ - "nil", - "nil" - ], - "filament_flush_temp": [ - "0", - "0" - ], - "filament_flush_volumetric_speed": [ - "0", - "0" - ], - "filament_long_retractions_when_cut": [ - "nil", - "nil" - ], - "filament_ramming_volumetric_speed": [ - "-1", - "-1" - ], - "filament_retract_before_wipe": [ - "nil", - "nil" - ], - "filament_retract_restart_extra": [ - "nil", - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil", - "nil" - ], - "filament_retraction_distances_when_cut": [ - "nil", - "nil" - ], - "filament_retraction_length": [ - "nil", - "nil" - ], - "filament_retraction_minimum_travel": [ - "nil", - "nil" - ], - "filament_retraction_speed": [ - "nil", - "nil" - ], - "filament_wipe": [ - "nil", - "nil" - ], - "filament_wipe_distance": [ - "nil", - "nil" - ], - "filament_z_hop": [ - "nil", - "nil" - ], - "filament_z_hop_types": [ - "nil", - "nil" - ], - "filament_extruder_variant": [ - "Direct Drive Standard", - "Direct Drive High Flow" - ], - "filament_pre_cooling_temperature": [ - "0", - "0" - ], - "filament_ramming_travel_time": [ - "0", - "0" - ], - "filament_adaptive_volumetric_speed": [ - "0", - "0" - ], - "long_retractions_when_ec": [ - "0", - "0" - ], - "nozzle_temperature": [ - "220", - "220" - ], - "nozzle_temperature_initial_layer": [ - "220", - "220" - ], - "retraction_distances_when_ec": [ - "0", - "0" - ], - "slow_down_layer_time": [ - "8" - ], - "volumetric_speed_coefficients": [ - "0 0 0 0 0 0", - "0 0 0 0 0 0" - ], "compatible_printers": [ "Bambu Lab X1 0.4 nozzle", "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL A1.json new file mode 100644 index 0000000000..feee6effdb --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL A1.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite PLA Galaxy @BBL A1", + "inherits": "PolyLite PLA Galaxy @base", + "from": "system", + "setting_id": "GFSL63_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 0.4 nozzle", + "Bambu Lab A1 0.6 nozzle", + "Bambu Lab A1 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL A1M.json new file mode 100644 index 0000000000..e7e4f70f23 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL A1M.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite PLA Galaxy @BBL A1M", + "inherits": "PolyLite PLA Galaxy @base", + "from": "system", + "setting_id": "GFSL63_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 mini 0.4 nozzle", + "Bambu Lab A1 mini 0.6 nozzle", + "Bambu Lab A1 mini 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL P1P.json new file mode 100644 index 0000000000..5c29bee1f3 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL P1P.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyLite PLA Galaxy @BBL P1P", + "inherits": "PolyLite PLA Galaxy @base", + "from": "system", + "setting_id": "GFSL63_02", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ], + "slow_down_layer_time": [ + "10" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL X1.json new file mode 100644 index 0000000000..5442a29906 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @BBL X1.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyLite PLA Galaxy @BBL X1", + "inherits": "PolyLite PLA Galaxy @base", + "from": "system", + "setting_id": "GFSL63_03", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ], + "slow_down_layer_time": [ + "4" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @base.json new file mode 100644 index 0000000000..9480b33392 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @base.json @@ -0,0 +1,68 @@ +{ + "type": "filament", + "name": "PolyLite PLA Galaxy @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL63", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "slow_down_layer_time": [ + "2" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL A1.json new file mode 100644 index 0000000000..3c9a455cae --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL A1.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite PLA Glow @BBL A1", + "inherits": "PolyLite PLA Glow @base", + "from": "system", + "setting_id": "GFSL64_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 0.4 nozzle", + "Bambu Lab A1 0.6 nozzle", + "Bambu Lab A1 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL A1M.json new file mode 100644 index 0000000000..205722c3d2 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL A1M.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite PLA Glow @BBL A1M", + "inherits": "PolyLite PLA Glow @base", + "from": "system", + "setting_id": "GFSL64_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 mini 0.4 nozzle", + "Bambu Lab A1 mini 0.6 nozzle", + "Bambu Lab A1 mini 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL P1P.json new file mode 100644 index 0000000000..2c67c2098b --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL P1P.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyLite PLA Glow @BBL P1P", + "inherits": "PolyLite PLA Glow @base", + "from": "system", + "setting_id": "GFSL64_02", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ], + "slow_down_layer_time": [ + "10" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL X1.json new file mode 100644 index 0000000000..932e217ee5 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @BBL X1.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyLite PLA Glow @BBL X1", + "inherits": "PolyLite PLA Glow @base", + "from": "system", + "setting_id": "GFSL64_03", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ], + "slow_down_layer_time": [ + "4" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @base.json new file mode 100644 index 0000000000..ab4b717dbb --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @base.json @@ -0,0 +1,68 @@ +{ + "type": "filament", + "name": "PolyLite PLA Glow @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL64", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "slow_down_layer_time": [ + "2" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL A1.json new file mode 100644 index 0000000000..7b9b747ad1 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL A1.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite PLA Luminous @BBL A1", + "inherits": "PolyLite PLA Luminous @base", + "from": "system", + "setting_id": "GFSL65_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 0.4 nozzle", + "Bambu Lab A1 0.6 nozzle", + "Bambu Lab A1 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL A1M.json new file mode 100644 index 0000000000..f6a84a52cb --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL A1M.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite PLA Luminous @BBL A1M", + "inherits": "PolyLite PLA Luminous @base", + "from": "system", + "setting_id": "GFSL65_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 mini 0.4 nozzle", + "Bambu Lab A1 mini 0.6 nozzle", + "Bambu Lab A1 mini 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL P1P.json new file mode 100644 index 0000000000..c89622dd47 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL P1P.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyLite PLA Luminous @BBL P1P", + "inherits": "PolyLite PLA Luminous @base", + "from": "system", + "setting_id": "GFSL65_02", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ], + "slow_down_layer_time": [ + "10" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL X1.json new file mode 100644 index 0000000000..d9cca17665 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @BBL X1.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyLite PLA Luminous @BBL X1", + "inherits": "PolyLite PLA Luminous @base", + "from": "system", + "setting_id": "GFSL65_03", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ], + "slow_down_layer_time": [ + "4" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @base.json new file mode 100644 index 0000000000..a6bb2746c1 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @base.json @@ -0,0 +1,68 @@ +{ + "type": "filament", + "name": "PolyLite PLA Luminous @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL65", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "slow_down_layer_time": [ + "2" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL A1.json new file mode 100644 index 0000000000..c54ed61ca9 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL A1.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite PLA Neon @BBL A1", + "inherits": "PolyLite PLA Neon @base", + "from": "system", + "setting_id": "GFSL66_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 0.4 nozzle", + "Bambu Lab A1 0.6 nozzle", + "Bambu Lab A1 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL A1M.json new file mode 100644 index 0000000000..b324cfd9bf --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL A1M.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite PLA Neon @BBL A1M", + "inherits": "PolyLite PLA Neon @base", + "from": "system", + "setting_id": "GFSL66_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 mini 0.4 nozzle", + "Bambu Lab A1 mini 0.6 nozzle", + "Bambu Lab A1 mini 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL P1P.json new file mode 100644 index 0000000000..79e994ecc4 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL P1P.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyLite PLA Neon @BBL P1P", + "inherits": "PolyLite PLA Neon @base", + "from": "system", + "setting_id": "GFSL66_02", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ], + "slow_down_layer_time": [ + "10" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL X1.json new file mode 100644 index 0000000000..6cc2023b3b --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @BBL X1.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyLite PLA Neon @BBL X1", + "inherits": "PolyLite PLA Neon @base", + "from": "system", + "setting_id": "GFSL66_03", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ], + "slow_down_layer_time": [ + "4" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @base.json new file mode 100644 index 0000000000..5a0ec60465 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @base.json @@ -0,0 +1,68 @@ +{ + "type": "filament", + "name": "PolyLite PLA Neon @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL66", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "slow_down_layer_time": [ + "2" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL A1.json new file mode 100644 index 0000000000..8e1425278b --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL A1.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite PLA Starlight @BBL A1", + "inherits": "PolyLite PLA Starlight @base", + "from": "system", + "setting_id": "GFSL67_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 0.4 nozzle", + "Bambu Lab A1 0.6 nozzle", + "Bambu Lab A1 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL A1M.json new file mode 100644 index 0000000000..ecb482cdcb --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL A1M.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite PLA Starlight @BBL A1M", + "inherits": "PolyLite PLA Starlight @base", + "from": "system", + "setting_id": "GFSL67_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 mini 0.4 nozzle", + "Bambu Lab A1 mini 0.6 nozzle", + "Bambu Lab A1 mini 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL P1P.json new file mode 100644 index 0000000000..0f7210a5cc --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL P1P.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyLite PLA Starlight @BBL P1P", + "inherits": "PolyLite PLA Starlight @base", + "from": "system", + "setting_id": "GFSL67_02", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ], + "slow_down_layer_time": [ + "10" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL X1.json new file mode 100644 index 0000000000..88d436c526 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @BBL X1.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyLite PLA Starlight @BBL X1", + "inherits": "PolyLite PLA Starlight @base", + "from": "system", + "setting_id": "GFSL67_03", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ], + "slow_down_layer_time": [ + "4" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @base.json new file mode 100644 index 0000000000..ecc73602c3 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @base.json @@ -0,0 +1,68 @@ +{ + "type": "filament", + "name": "PolyLite PLA Starlight @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL67", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "slow_down_layer_time": [ + "2" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL A1.json new file mode 100644 index 0000000000..6664212a43 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL A1.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite PLA Translucent @BBL A1", + "inherits": "PolyLite PLA Translucent @base", + "from": "system", + "setting_id": "GFSL68_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 0.4 nozzle", + "Bambu Lab A1 0.6 nozzle", + "Bambu Lab A1 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL A1M.json new file mode 100644 index 0000000000..7b20e40ce1 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL A1M.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite PLA Translucent @BBL A1M", + "inherits": "PolyLite PLA Translucent @base", + "from": "system", + "setting_id": "GFSL68_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 mini 0.4 nozzle", + "Bambu Lab A1 mini 0.6 nozzle", + "Bambu Lab A1 mini 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL P1P.json new file mode 100644 index 0000000000..f3f3198158 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL P1P.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyLite PLA Translucent @BBL P1P", + "inherits": "PolyLite PLA Translucent @base", + "from": "system", + "setting_id": "GFSL68_02", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ], + "slow_down_layer_time": [ + "10" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL X1.json new file mode 100644 index 0000000000..f67db0a271 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @BBL X1.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyLite PLA Translucent @BBL X1", + "inherits": "PolyLite PLA Translucent @base", + "from": "system", + "setting_id": "GFSL68_03", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ], + "slow_down_layer_time": [ + "4" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @base.json new file mode 100644 index 0000000000..f5f9c89720 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @base.json @@ -0,0 +1,68 @@ +{ + "type": "filament", + "name": "PolyLite PLA Translucent @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL68", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "slow_down_layer_time": [ + "2" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @BBL A1.json index a9929a1b81..d10f958597 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @BBL A1.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @BBL A1.json @@ -5,36 +5,69 @@ "from": "system", "setting_id": "GFSL01_02", "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 0.4 nozzle", + "Bambu Lab A1 0.6 nozzle", + "Bambu Lab A1 0.8 nozzle" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], "fan_cooling_layer_time": [ "80" ], + "filament_cost": [ + "21.99" + ], + "filament_density": [ + "1.37" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "bed_type": [ + "Cool Plate" + ], "fan_max_speed": [ "80" ], "fan_min_speed": [ "60" ], - "filament_max_volumetric_speed": [ - "22" - ], - "hot_plate_temp": [ - "65" - ], - "hot_plate_temp_initial_layer": [ - "65" + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "8" ], - "textured_plate_temp": [ - "65" + "temperature_vitrification": [ + "61" ], - "textured_plate_temp_initial_layer": [ - "65" - ], - "compatible_printers": [ - "Bambu Lab A1 0.4 nozzle", - "Bambu Lab A1 0.6 nozzle", - "Bambu Lab A1 0.8 nozzle" + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @BBL A1M.json index cf8d706e55..ca09a47935 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @BBL A1M.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @BBL A1M.json @@ -5,36 +5,69 @@ "from": "system", "setting_id": "GFSL01_00", "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 mini 0.4 nozzle", + "Bambu Lab A1 mini 0.6 nozzle", + "Bambu Lab A1 mini 0.8 nozzle" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], "fan_cooling_layer_time": [ "80" ], + "filament_cost": [ + "21.99" + ], + "filament_density": [ + "1.37" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "bed_type": [ + "Cool Plate" + ], "fan_max_speed": [ "80" ], "fan_min_speed": [ "60" ], - "filament_max_volumetric_speed": [ - "22" - ], - "hot_plate_temp": [ - "60" - ], - "hot_plate_temp_initial_layer": [ - "60" + "slow_down_min_speed": [ + "5" ], "slow_down_layer_time": [ "8" ], - "textured_plate_temp": [ - "65" + "temperature_vitrification": [ + "61" ], - "textured_plate_temp_initial_layer": [ - "65" - ], - "compatible_printers": [ - "Bambu Lab A1 mini 0.4 nozzle", - "Bambu Lab A1 mini 0.6 nozzle", - "Bambu Lab A1 mini 0.8 nozzle" + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @BBL X1.json index bb143728a7..d3f601395b 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @BBL X1.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @BBL X1.json @@ -5,123 +5,60 @@ "from": "system", "setting_id": "GFSL22", "instantiation": "true", - "filament_max_volumetric_speed": [ - "22", - "22" - ], - "filament_flow_ratio": [ - "0.98", - "0.98" - ], - "filament_deretraction_speed": [ - "nil", - "nil" - ], - "filament_flush_temp": [ - "0", - "0" - ], - "filament_flush_volumetric_speed": [ - "0", - "0" - ], - "filament_long_retractions_when_cut": [ - "nil", - "nil" - ], - "filament_ramming_volumetric_speed": [ - "-1", - "-1" - ], - "filament_retract_before_wipe": [ - "nil", - "nil" - ], - "filament_retract_restart_extra": [ - "nil", - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil", - "nil" - ], - "filament_retraction_distances_when_cut": [ - "nil", - "nil" - ], - "filament_retraction_length": [ - "nil", - "nil" - ], - "filament_retraction_minimum_travel": [ - "nil", - "nil" - ], - "filament_retraction_speed": [ - "nil", - "nil" - ], - "filament_wipe": [ - "nil", - "nil" - ], - "filament_wipe_distance": [ - "nil", - "nil" - ], - "filament_z_hop": [ - "nil", - "nil" - ], - "filament_z_hop_types": [ - "nil", - "nil" - ], - "filament_extruder_variant": [ - "Direct Drive Standard", - "Direct Drive High Flow" - ], - "filament_pre_cooling_temperature": [ - "0", - "0" - ], - "filament_ramming_travel_time": [ - "0", - "0" - ], - "filament_adaptive_volumetric_speed": [ - "0", - "0" - ], - "long_retractions_when_ec": [ - "0", - "0" - ], - "nozzle_temperature": [ - "220", - "220" - ], - "nozzle_temperature_initial_layer": [ - "220", - "220" - ], - "retraction_distances_when_ec": [ - "0", - "0" - ], - "slow_down_layer_time": [ - "8" - ], - "volumetric_speed_coefficients": [ - "0 0 0 0 0 0", - "0 0 0 0 0 0" - ], "compatible_printers": [ "Bambu Lab X1 0.4 nozzle", "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle" ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "overhang_fan_speed": [ + "75" + ], + "filament_cost": [ + "21.99" + ], + "filament_density": [ + "1.37" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "bed_type": [ + "Cool Plate" + ], + "slow_down_min_speed": [ + "5" + ], + "slow_down_layer_time": [ + "8" + ], + "temperature_vitrification": [ + "61" + ], + "nozzle_temperature_range_high": [ + "230" ] } diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL A1.json new file mode 100644 index 0000000000..9bda6808d9 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL A1.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyTerra PLA Marble @BBL A1", + "inherits": "PolyTerra PLA Marble @base", + "from": "system", + "setting_id": "GFSL69_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 0.4 nozzle", + "Bambu Lab A1 0.6 nozzle", + "Bambu Lab A1 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL A1M.json new file mode 100644 index 0000000000..721e0b3d3d --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL A1M.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyTerra PLA Marble @BBL A1M", + "inherits": "PolyTerra PLA Marble @base", + "from": "system", + "setting_id": "GFSL69_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 mini 0.4 nozzle", + "Bambu Lab A1 mini 0.6 nozzle", + "Bambu Lab A1 mini 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL P1P.json new file mode 100644 index 0000000000..5dedafd5ff --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL P1P.json @@ -0,0 +1,19 @@ +{ + "type": "filament", + "name": "PolyTerra PLA Marble @BBL P1P", + "inherits": "PolyTerra PLA Marble @base", + "from": "system", + "setting_id": "GFSL69_02", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "50" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL X1.json new file mode 100644 index 0000000000..8a47922219 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @BBL X1.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "name": "PolyTerra PLA Marble @BBL X1", + "inherits": "PolyTerra PLA Marble @base", + "from": "system", + "setting_id": "GFSL69_03", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @base.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @base.json new file mode 100644 index 0000000000..2b64adc51c --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @base.json @@ -0,0 +1,77 @@ +{ + "type": "filament", + "name": "PolyTerra PLA Marble @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL69", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "filament_cost": [ + "21.99" + ], + "filament_density": [ + "1.37" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL A1.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL A1.json new file mode 100644 index 0000000000..08ace4c6a5 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL A1.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyTerra PLA+ @BBL A1", + "inherits": "PolyTerra PLA+ @base", + "from": "system", + "setting_id": "GFSL70_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 0.4 nozzle", + "Bambu Lab A1 0.6 nozzle", + "Bambu Lab A1 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL A1M.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL A1M.json new file mode 100644 index 0000000000..86f3ab3ffb --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL A1M.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyTerra PLA+ @BBL A1M", + "inherits": "PolyTerra PLA+ @base", + "from": "system", + "setting_id": "GFSL70_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 mini 0.4 nozzle", + "Bambu Lab A1 mini 0.6 nozzle", + "Bambu Lab A1 mini 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL P1P.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL P1P.json new file mode 100644 index 0000000000..dd09d09637 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL P1P.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyTerra PLA+ @BBL P1P", + "inherits": "PolyTerra PLA+ @base", + "from": "system", + "setting_id": "GFSL70_02", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ], + "slow_down_layer_time": [ + "15" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL X1.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL X1.json new file mode 100644 index 0000000000..a28a8d30d8 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @BBL X1.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "PolyTerra PLA+ @BBL X1", + "inherits": "PolyTerra PLA+ @base", + "from": "system", + "setting_id": "GFSL70_03", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ], + "slow_down_layer_time": [ + "15" + ] +} diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @base.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @base.json new file mode 100644 index 0000000000..15fccef9e3 --- /dev/null +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @base.json @@ -0,0 +1,71 @@ +{ + "type": "filament", + "name": "PolyTerra PLA+ @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL70", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "20.99" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "slow_down_layer_time": [ + "5" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "59" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Custom.json b/resources/profiles/Custom.json index a2dae74cab..2f9eeefd34 100644 --- a/resources/profiles/Custom.json +++ b/resources/profiles/Custom.json @@ -38,15 +38,14 @@ "name": "fdm_process_marlin_common", "sub_path": "process/fdm_process_marlin_common.json" }, - { - "name": "fdm_process_rrf_common", - "sub_path": "process/fdm_process_rrf_common.json" - }, { "name": "fdm_process_repetier_common", "sub_path": "process/fdm_process_repetier_common.json" }, - + { + "name": "fdm_process_rrf_common", + "sub_path": "process/fdm_process_rrf_common.json" + }, { "name": "0.08mm Extra Fine @MyKlipper", "sub_path": "process/0.08mm Extra Fine @MyKlipper.json" @@ -115,6 +114,10 @@ "name": "0.28mm Extra Draft @MyMarlin", "sub_path": "process/0.28mm Extra Draft @MyMarlin.json" }, + { + "name": "0.20mm Standard @MyRepetier", + "sub_path": "process/0.20mm Standard @MyRepetier.json" + }, { "name": "0.08mm Extra Fine @MyRRF", "sub_path": "process/0.08mm Extra Fine @MyRRF.json" @@ -139,10 +142,6 @@ "name": "0.28mm Extra Draft @MyRRF", "sub_path": "process/0.28mm Extra Draft @MyRRF.json" }, - { - "name": "0.20mm Standard @MyRepetier", - "sub_path": "process/0.20mm Standard @MyRepetier.json" - }, { "name": "0.08mm Extra Fine @MyToolChanger", "sub_path": "process/0.08mm Extra Fine @MyToolChanger.json" @@ -239,14 +238,14 @@ "name": "fdm_klipper_common", "sub_path": "machine/fdm_klipper_common.json" }, - { - "name": "fdm_rrf_common", - "sub_path": "machine/fdm_rrf_common.json" - }, { "name": "fdm_repetier_common", "sub_path": "machine/fdm_repetier_common.json" }, + { + "name": "fdm_rrf_common", + "sub_path": "machine/fdm_rrf_common.json" + }, { "name": "MyKlipper 0.2 nozzle", "sub_path": "machine/MyKlipper 0.2 nozzle.json" @@ -267,14 +266,14 @@ "name": "fdm_toolchanger_common", "sub_path": "machine/fdm_toolchanger_common.json" }, - { - "name": "MyRRF 0.4 nozzle", - "sub_path": "machine/MyRRF 0.4 nozzle.json" - }, { "name": "MyRepetier 0.4 nozzle", "sub_path": "machine/MyRepetier 0.4 nozzle.json" }, + { + "name": "MyRRF 0.4 nozzle", + "sub_path": "machine/MyRRF 0.4 nozzle.json" + }, { "name": "MyToolChanger 0.2 nozzle", "sub_path": "machine/MyToolChanger 0.2 nozzle.json" diff --git a/resources/profiles/Elegoo.json b/resources/profiles/Elegoo.json index 9d3dea98c3..d22fb9f0f0 100644 --- a/resources/profiles/Elegoo.json +++ b/resources/profiles/Elegoo.json @@ -5,36 +5,36 @@ "description": "Elegoo configurations", "machine_model_list": [ { - "name": "Elegoo Centauri Carbon 2", - "sub_path": "machine/ECC2/Elegoo Centauri Carbon 2.json" + "name": "Elegoo Centauri", + "sub_path": "machine/EC/Elegoo Centauri.json" }, { "name": "Elegoo Centauri Carbon", "sub_path": "machine/ECC/Elegoo Centauri Carbon.json" }, { - "name": "Elegoo Centauri", - "sub_path": "machine/EC/Elegoo Centauri.json" + "name": "Elegoo Centauri Carbon 2", + "sub_path": "machine/ECC2/Elegoo Centauri Carbon 2.json" }, { - "name": "Elegoo OrangeStorm Giga", - "sub_path": "machine/EOSGIGA/Elegoo OrangeStorm Giga.json" + "name": "Elegoo Neptune", + "sub_path": "machine/EN2SERIES/Elegoo Neptune.json" }, { - "name": "Elegoo Neptune 4 Max", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Max.json" + "name": "Elegoo Neptune 2", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 2.json" }, { - "name": "Elegoo Neptune 4 Plus", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Plus.json" + "name": "Elegoo Neptune 2D", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 2D.json" }, { - "name": "Elegoo Neptune 4 Pro", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Pro.json" + "name": "Elegoo Neptune 2S", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 2S.json" }, { - "name": "Elegoo Neptune 4", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4.json" + "name": "Elegoo Neptune 3", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 3.json" }, { "name": "Elegoo Neptune 3 Max", @@ -49,28 +49,28 @@ "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Pro.json" }, { - "name": "Elegoo Neptune 3", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 3.json" + "name": "Elegoo Neptune 4", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4.json" + }, + { + "name": "Elegoo Neptune 4 Max", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Max.json" + }, + { + "name": "Elegoo Neptune 4 Plus", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Plus.json" + }, + { + "name": "Elegoo Neptune 4 Pro", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Pro.json" }, { "name": "Elegoo Neptune X", "sub_path": "machine/EN2SERIES/Elegoo Neptune X.json" }, { - "name": "Elegoo Neptune 2S", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 2S.json" - }, - { - "name": "Elegoo Neptune 2D", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 2D.json" - }, - { - "name": "Elegoo Neptune 2", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 2.json" - }, - { - "name": "Elegoo Neptune", - "sub_path": "machine/EN2SERIES/Elegoo Neptune.json" + "name": "Elegoo OrangeStorm Giga", + "sub_path": "machine/EOSGIGA/Elegoo OrangeStorm Giga.json" } ], "process_list": [ @@ -103,788 +103,216 @@ "sub_path": "process/fdm_process_elegoo_10050.json" }, { - "name": "0.20mm Standard @Elegoo CC2 0.4 nozzle", - "sub_path": "process/ECC2/0.20mm Standard @Elegoo CC2 0.4 nozzle.json" - }, - { - "name": "0.10mm Standard @Elegoo CC2 0.2 nozzle", - "sub_path": "process/ECC2/0.10mm Standard @Elegoo CC2 0.2 nozzle.json" - }, - { - "name": "0.30mm Standard @Elegoo CC2 0.6 nozzle", - "sub_path": "process/ECC2/0.30mm Standard @Elegoo CC2 0.6 nozzle.json" - }, - { - "name": "0.40mm Standard @Elegoo CC2 0.8 nozzle", - "sub_path": "process/ECC2/0.40mm Standard @Elegoo CC2 0.8 nozzle.json" - }, - { - "name": "0.48mm Draft @Elegoo CC2 0.8 nozzle", - "sub_path": "process/ECC2/0.48mm Draft @Elegoo CC2 0.8 nozzle.json" - }, - { - "name": "0.42mm Extra Draft @Elegoo CC2 0.6 nozzle", - "sub_path": "process/ECC2/0.42mm Extra Draft @Elegoo CC2 0.6 nozzle.json" - }, - { - "name": "0.36mm Draft @Elegoo CC2 0.6 nozzle", - "sub_path": "process/ECC2/0.36mm Draft @Elegoo CC2 0.6 nozzle.json" - }, - { - "name": "0.32mm Optimal @Elegoo CC2 0.8 nozzle", - "sub_path": "process/ECC2/0.32mm Optimal @Elegoo CC2 0.8 nozzle.json" - }, - { - "name": "0.30mm Strength @Elegoo CC2 0.6 nozzle", - "sub_path": "process/ECC2/0.30mm Strength @Elegoo CC2 0.6 nozzle.json" - }, - { - "name": "0.28mm Extra Draft @Elegoo CC2 0.4 nozzle", - "sub_path": "process/ECC2/0.28mm Extra Draft @Elegoo CC2 0.4 nozzle.json" - }, - { - "name": "0.24mm Optimal @Elegoo CC2 0.6 nozzle", - "sub_path": "process/ECC2/0.24mm Optimal @Elegoo CC2 0.6 nozzle.json" - }, - { - "name": "0.24mm Fine @Elegoo CC2 0.8 nozzle", - "sub_path": "process/ECC2/0.24mm Fine @Elegoo CC2 0.8 nozzle.json" - }, - { - "name": "0.24mm Draft @Elegoo CC2 0.4 nozzle", - "sub_path": "process/ECC2/0.24mm Draft @Elegoo CC2 0.4 nozzle.json" - }, - { - "name": "0.20mm Strength @Elegoo CC2 0.4 nozzle", - "sub_path": "process/ECC2/0.20mm Strength @Elegoo CC2 0.4 nozzle.json" - }, - { - "name": "0.18mm Fine @Elegoo CC2 0.6 nozzle", - "sub_path": "process/ECC2/0.18mm Fine @Elegoo CC2 0.6 nozzle.json" - }, - { - "name": "0.16mm Optimal @Elegoo CC2 0.4 nozzle", - "sub_path": "process/ECC2/0.16mm Optimal @Elegoo CC2 0.4 nozzle.json" - }, - { - "name": "0.16mm Extra Fine @Elegoo CC2 0.8 nozzle", - "sub_path": "process/ECC2/0.16mm Extra Fine @Elegoo CC2 0.8 nozzle.json" - }, - { - "name": "0.14mm Extra Draft @Elegoo CC2 0.2 nozzle", - "sub_path": "process/ECC2/0.14mm Extra Draft @Elegoo CC2 0.2 nozzle.json" - }, - { - "name": "0.12mm Fine @Elegoo CC2 0.4 nozzle", - "sub_path": "process/ECC2/0.12mm Fine @Elegoo CC2 0.4 nozzle.json" - }, - { - "name": "0.12mm Draft @Elegoo CC2 0.2 nozzle", - "sub_path": "process/ECC2/0.12mm Draft @Elegoo CC2 0.2 nozzle.json" - }, - { - "name": "0.08mm Optimal @Elegoo CC2 0.2 nozzle", - "sub_path": "process/ECC2/0.08mm Optimal @Elegoo CC2 0.2 nozzle.json" - }, - { - "name": "0.20mm Standard @Elegoo CC 0.4 nozzle", - "sub_path": "process/ECC/0.20mm Standard @Elegoo CC 0.4 nozzle.json" + "name": "0.10mm Standard @Elegoo C 0.2 nozzle", + "sub_path": "process/EC/0.10mm Standard @Elegoo C 0.2 nozzle.json" }, { "name": "0.10mm Standard @Elegoo CC 0.2 nozzle", "sub_path": "process/ECC/0.10mm Standard @Elegoo CC 0.2 nozzle.json" }, { - "name": "0.30mm Standard @Elegoo CC 0.6 nozzle", - "sub_path": "process/ECC/0.30mm Standard @Elegoo CC 0.6 nozzle.json" + "name": "0.10mm Standard @Elegoo CC2 0.2 nozzle", + "sub_path": "process/ECC2/0.10mm Standard @Elegoo CC2 0.2 nozzle.json" }, { - "name": "0.40mm Standard @Elegoo CC 0.8 nozzle", - "sub_path": "process/ECC/0.40mm Standard @Elegoo CC 0.8 nozzle.json" - }, - { - "name": "0.48mm Draft @Elegoo CC 0.8 nozzle", - "sub_path": "process/ECC/0.48mm Draft @Elegoo CC 0.8 nozzle.json" - }, - { - "name": "0.42mm Extra Draft @Elegoo CC 0.6 nozzle", - "sub_path": "process/ECC/0.42mm Extra Draft @Elegoo CC 0.6 nozzle.json" - }, - { - "name": "0.36mm Draft @Elegoo CC 0.6 nozzle", - "sub_path": "process/ECC/0.36mm Draft @Elegoo CC 0.6 nozzle.json" - }, - { - "name": "0.32mm Optimal @Elegoo CC 0.8 nozzle", - "sub_path": "process/ECC/0.32mm Optimal @Elegoo CC 0.8 nozzle.json" - }, - { - "name": "0.30mm Strength @Elegoo CC 0.6 nozzle", - "sub_path": "process/ECC/0.30mm Strength @Elegoo CC 0.6 nozzle.json" - }, - { - "name": "0.28mm Extra Draft @Elegoo CC 0.4 nozzle", - "sub_path": "process/ECC/0.28mm Extra Draft @Elegoo CC 0.4 nozzle.json" - }, - { - "name": "0.24mm Optimal @Elegoo CC 0.6 nozzle", - "sub_path": "process/ECC/0.24mm Optimal @Elegoo CC 0.6 nozzle.json" - }, - { - "name": "0.24mm Fine @Elegoo CC 0.8 nozzle", - "sub_path": "process/ECC/0.24mm Fine @Elegoo CC 0.8 nozzle.json" - }, - { - "name": "0.24mm Draft @Elegoo CC 0.4 nozzle", - "sub_path": "process/ECC/0.24mm Draft @Elegoo CC 0.4 nozzle.json" - }, - { - "name": "0.20mm Strength @Elegoo CC 0.4 nozzle", - "sub_path": "process/ECC/0.20mm Strength @Elegoo CC 0.4 nozzle.json" - }, - { - "name": "0.18mm Fine @Elegoo CC 0.6 nozzle", - "sub_path": "process/ECC/0.18mm Fine @Elegoo CC 0.6 nozzle.json" - }, - { - "name": "0.16mm Optimal @Elegoo CC 0.4 nozzle", - "sub_path": "process/ECC/0.16mm Optimal @Elegoo CC 0.4 nozzle.json" - }, - { - "name": "0.16mm Extra Fine @Elegoo CC 0.8 nozzle", - "sub_path": "process/ECC/0.16mm Extra Fine @Elegoo CC 0.8 nozzle.json" - }, - { - "name": "0.14mm Extra Draft @Elegoo CC 0.2 nozzle", - "sub_path": "process/ECC/0.14mm Extra Draft @Elegoo CC 0.2 nozzle.json" - }, - { - "name": "0.12mm Fine @Elegoo CC 0.4 nozzle", - "sub_path": "process/ECC/0.12mm Fine @Elegoo CC 0.4 nozzle.json" - }, - { - "name": "0.12mm Draft @Elegoo CC 0.2 nozzle", - "sub_path": "process/ECC/0.12mm Draft @Elegoo CC 0.2 nozzle.json" - }, - { - "name": "0.08mm Optimal @Elegoo CC 0.2 nozzle", - "sub_path": "process/ECC/0.08mm Optimal @Elegoo CC 0.2 nozzle.json" - }, - { - "name": "0.20mm Standard @Elegoo C 0.4 nozzle", - "sub_path": "process/EC/0.20mm Standard @Elegoo C 0.4 nozzle.json" - }, - { - "name": "0.10mm Standard @Elegoo C 0.2 nozzle", - "sub_path": "process/EC/0.10mm Standard @Elegoo C 0.2 nozzle.json" - }, - { - "name": "0.30mm Standard @Elegoo C 0.6 nozzle", - "sub_path": "process/EC/0.30mm Standard @Elegoo C 0.6 nozzle.json" - }, - { - "name": "0.40mm Standard @Elegoo C 0.8 nozzle", - "sub_path": "process/EC/0.40mm Standard @Elegoo C 0.8 nozzle.json" - }, - { - "name": "0.48mm Draft @Elegoo C 0.8 nozzle", - "sub_path": "process/EC/0.48mm Draft @Elegoo C 0.8 nozzle.json" - }, - { - "name": "0.42mm Extra Draft @Elegoo C 0.6 nozzle", - "sub_path": "process/EC/0.42mm Extra Draft @Elegoo C 0.6 nozzle.json" - }, - { - "name": "0.36mm Draft @Elegoo C 0.6 nozzle", - "sub_path": "process/EC/0.36mm Draft @Elegoo C 0.6 nozzle.json" - }, - { - "name": "0.32mm Optimal @Elegoo C 0.8 nozzle", - "sub_path": "process/EC/0.32mm Optimal @Elegoo C 0.8 nozzle.json" - }, - { - "name": "0.30mm Strength @Elegoo C 0.6 nozzle", - "sub_path": "process/EC/0.30mm Strength @Elegoo C 0.6 nozzle.json" - }, - { - "name": "0.28mm Extra Draft @Elegoo C 0.4 nozzle", - "sub_path": "process/EC/0.28mm Extra Draft @Elegoo C 0.4 nozzle.json" - }, - { - "name": "0.24mm Optimal @Elegoo C 0.6 nozzle", - "sub_path": "process/EC/0.24mm Optimal @Elegoo C 0.6 nozzle.json" - }, - { - "name": "0.24mm Fine @Elegoo C 0.8 nozzle", - "sub_path": "process/EC/0.24mm Fine @Elegoo C 0.8 nozzle.json" - }, - { - "name": "0.24mm Draft @Elegoo C 0.4 nozzle", - "sub_path": "process/EC/0.24mm Draft @Elegoo C 0.4 nozzle.json" - }, - { - "name": "0.20mm Strength @Elegoo C 0.4 nozzle", - "sub_path": "process/EC/0.20mm Strength @Elegoo C 0.4 nozzle.json" - }, - { - "name": "0.18mm Fine @Elegoo C 0.6 nozzle", - "sub_path": "process/EC/0.18mm Fine @Elegoo C 0.6 nozzle.json" - }, - { - "name": "0.16mm Optimal @Elegoo C 0.4 nozzle", - "sub_path": "process/EC/0.16mm Optimal @Elegoo C 0.4 nozzle.json" - }, - { - "name": "0.16mm Extra Fine @Elegoo C 0.8 nozzle", - "sub_path": "process/EC/0.16mm Extra Fine @Elegoo C 0.8 nozzle.json" - }, - { - "name": "0.14mm Extra Draft @Elegoo C 0.2 nozzle", - "sub_path": "process/EC/0.14mm Extra Draft @Elegoo C 0.2 nozzle.json" - }, - { - "name": "0.12mm Fine @Elegoo C 0.4 nozzle", - "sub_path": "process/EC/0.12mm Fine @Elegoo C 0.4 nozzle.json" - }, - { - "name": "0.12mm Draft @Elegoo C 0.2 nozzle", - "sub_path": "process/EC/0.12mm Draft @Elegoo C 0.2 nozzle.json" - }, - { - "name": "0.08mm Optimal @Elegoo C 0.2 nozzle", - "sub_path": "process/EC/0.08mm Optimal @Elegoo C 0.2 nozzle.json" - }, - { - "name": "0.20mm Standard @Elegoo N4 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.20mm Standard @Elegoo N4 0.4 nozzle.json" - }, - { - "name": "0.12mm Fine @Elegoo N4 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.12mm Fine @Elegoo N4 0.4 nozzle.json" - }, - { - "name": "0.16mm Optimal @Elegoo N4 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.16mm Optimal @Elegoo N4 0.4 nozzle.json" - }, - { - "name": "0.20mm Strength @Elegoo N4 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.20mm Strength @Elegoo N4 0.4 nozzle.json" - }, - { - "name": "0.24mm Draft @Elegoo N4 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.24mm Draft @Elegoo N4 0.4 nozzle.json" - }, - { - "name": "0.28mm Extra Draft @Elegoo N4 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.28mm Extra Draft @Elegoo N4 0.4 nozzle.json" - }, - { - "name": "0.10mm Standard @Elegoo N4 0.2 nozzle", - "sub_path": "process/EN4SERIES/0.10mm Standard @Elegoo N4 0.2 nozzle.json" - }, - { - "name": "0.08mm Optimal @Elegoo N4 0.2 nozzle", - "sub_path": "process/EN4SERIES/0.08mm Optimal @Elegoo N4 0.2 nozzle.json" - }, - { - "name": "0.12mm Draft @Elegoo N4 0.2 nozzle", - "sub_path": "process/EN4SERIES/0.12mm Draft @Elegoo N4 0.2 nozzle.json" - }, - { - "name": "0.30mm Standard @Elegoo N4 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.30mm Standard @Elegoo N4 0.6 nozzle.json" - }, - { - "name": "0.24mm Optimal @Elegoo N4 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.24mm Optimal @Elegoo N4 0.6 nozzle.json" - }, - { - "name": "0.36mm Draft @Elegoo N4 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.36mm Draft @Elegoo N4 0.6 nozzle.json" - }, - { - "name": "0.42mm Extra Draft @Elegoo N4 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.42mm Extra Draft @Elegoo N4 0.6 nozzle.json" - }, - { - "name": "0.40mm Standard @Elegoo N4 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.40mm Standard @Elegoo N4 0.8 nozzle.json" - }, - { - "name": "0.24mm Fine @Elegoo N4 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.24mm Fine @Elegoo N4 0.8 nozzle.json" - }, - { - "name": "0.32mm Optimal @Elegoo N4 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.32mm Optimal @Elegoo N4 0.8 nozzle.json" - }, - { - "name": "0.48mm Draft @Elegoo N4 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.48mm Draft @Elegoo N4 0.8 nozzle.json" - }, - { - "name": "0.50mm Standard @Elegoo N4 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.50mm Standard @Elegoo N4 1.0 nozzle.json" - }, - { - "name": "0.30mm Fine @Elegoo N4 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.30mm Fine @Elegoo N4 1.0 nozzle.json" - }, - { - "name": "0.40mm Optimal @Elegoo N4 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.40mm Optimal @Elegoo N4 1.0 nozzle.json" - }, - { - "name": "0.60mm Draft @Elegoo N4 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.60mm Draft @Elegoo N4 1.0 nozzle.json" - }, - { - "name": "0.20mm Standard @Elegoo N4Pro 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.20mm Standard @Elegoo N4Pro 0.4 nozzle.json" - }, - { - "name": "0.12mm Fine @Elegoo N4Pro 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.12mm Fine @Elegoo N4Pro 0.4 nozzle.json" - }, - { - "name": "0.16mm Optimal @Elegoo N4Pro 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.16mm Optimal @Elegoo N4Pro 0.4 nozzle.json" - }, - { - "name": "0.20mm Strength @Elegoo N4Pro 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.20mm Strength @Elegoo N4Pro 0.4 nozzle.json" - }, - { - "name": "0.24mm Draft @Elegoo N4Pro 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.24mm Draft @Elegoo N4Pro 0.4 nozzle.json" - }, - { - "name": "0.28mm Extra Draft @Elegoo N4Pro 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.28mm Extra Draft @Elegoo N4Pro 0.4 nozzle.json" - }, - { - "name": "0.10mm Standard @Elegoo N4Pro 0.2 nozzle", - "sub_path": "process/EN4SERIES/0.10mm Standard @Elegoo N4Pro 0.2 nozzle.json" - }, - { - "name": "0.08mm Optimal @Elegoo N4Pro 0.2 nozzle", - "sub_path": "process/EN4SERIES/0.08mm Optimal @Elegoo N4Pro 0.2 nozzle.json" - }, - { - "name": "0.12mm Draft @Elegoo N4Pro 0.2 nozzle", - "sub_path": "process/EN4SERIES/0.12mm Draft @Elegoo N4Pro 0.2 nozzle.json" - }, - { - "name": "0.30mm Standard @Elegoo N4Pro 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.30mm Standard @Elegoo N4Pro 0.6 nozzle.json" - }, - { - "name": "0.24mm Optimal @Elegoo N4Pro 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.24mm Optimal @Elegoo N4Pro 0.6 nozzle.json" - }, - { - "name": "0.36mm Draft @Elegoo N4Pro 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.36mm Draft @Elegoo N4Pro 0.6 nozzle.json" - }, - { - "name": "0.42mm Extra Draft @Elegoo N4Pro 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.42mm Extra Draft @Elegoo N4Pro 0.6 nozzle.json" - }, - { - "name": "0.40mm Standard @Elegoo N4Pro 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.40mm Standard @Elegoo N4Pro 0.8 nozzle.json" - }, - { - "name": "0.24mm Fine @Elegoo N4Pro 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.24mm Fine @Elegoo N4Pro 0.8 nozzle.json" - }, - { - "name": "0.32mm Optimal @Elegoo N4Pro 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.32mm Optimal @Elegoo N4Pro 0.8 nozzle.json" - }, - { - "name": "0.48mm Draft @Elegoo N4Pro 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.48mm Draft @Elegoo N4Pro 0.8 nozzle.json" - }, - { - "name": "0.50mm Standard @Elegoo N4Pro 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.50mm Standard @Elegoo N4Pro 1.0 nozzle.json" - }, - { - "name": "0.30mm Fine @Elegoo N4Pro 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.30mm Fine @Elegoo N4Pro 1.0 nozzle.json" - }, - { - "name": "0.40mm Optimal @Elegoo N4Pro 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.40mm Optimal @Elegoo N4Pro 1.0 nozzle.json" - }, - { - "name": "0.60mm Draft @Elegoo N4Pro 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.60mm Draft @Elegoo N4Pro 1.0 nozzle.json" - }, - { - "name": "0.20mm Standard @Elegoo N4Plus 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.20mm Standard @Elegoo N4Plus 0.4 nozzle.json" - }, - { - "name": "0.12mm Fine @Elegoo N4Plus 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.12mm Fine @Elegoo N4Plus 0.4 nozzle.json" - }, - { - "name": "0.16mm Optimal @Elegoo N4Plus 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.16mm Optimal @Elegoo N4Plus 0.4 nozzle.json" - }, - { - "name": "0.20mm Strength @Elegoo N4Plus 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.20mm Strength @Elegoo N4Plus 0.4 nozzle.json" - }, - { - "name": "0.24mm Draft @Elegoo N4Plus 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.24mm Draft @Elegoo N4Plus 0.4 nozzle.json" - }, - { - "name": "0.28mm Extra Draft @Elegoo N4Plus 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.28mm Extra Draft @Elegoo N4Plus 0.4 nozzle.json" - }, - { - "name": "0.10mm Standard @Elegoo N4Plus 0.2 nozzle", - "sub_path": "process/EN4SERIES/0.10mm Standard @Elegoo N4Plus 0.2 nozzle.json" - }, - { - "name": "0.08mm Optimal @Elegoo N4Plus 0.2 nozzle", - "sub_path": "process/EN4SERIES/0.08mm Optimal @Elegoo N4Plus 0.2 nozzle.json" - }, - { - "name": "0.12mm Draft @Elegoo N4Plus 0.2 nozzle", - "sub_path": "process/EN4SERIES/0.12mm Draft @Elegoo N4Plus 0.2 nozzle.json" - }, - { - "name": "0.30mm Standard @Elegoo N4Plus 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.30mm Standard @Elegoo N4Plus 0.6 nozzle.json" - }, - { - "name": "0.24mm Optimal @Elegoo N4Plus 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.24mm Optimal @Elegoo N4Plus 0.6 nozzle.json" - }, - { - "name": "0.36mm Draft @Elegoo N4Plus 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.36mm Draft @Elegoo N4Plus 0.6 nozzle.json" - }, - { - "name": "0.42mm Extra Draft @Elegoo N4Plus 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.42mm Extra Draft @Elegoo N4Plus 0.6 nozzle.json" - }, - { - "name": "0.40mm Standard @Elegoo N4Plus 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.40mm Standard @Elegoo N4Plus 0.8 nozzle.json" - }, - { - "name": "0.24mm Fine @Elegoo N4Plus 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.24mm Fine @Elegoo N4Plus 0.8 nozzle.json" - }, - { - "name": "0.32mm Optimal @Elegoo N4Plus 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.32mm Optimal @Elegoo N4Plus 0.8 nozzle.json" - }, - { - "name": "0.48mm Draft @Elegoo N4Plus 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.48mm Draft @Elegoo N4Plus 0.8 nozzle.json" - }, - { - "name": "0.50mm Standard @Elegoo N4Plus 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.50mm Standard @Elegoo N4Plus 1.0 nozzle.json" - }, - { - "name": "0.30mm Fine @Elegoo N4Plus 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.30mm Fine @Elegoo N4Plus 1.0 nozzle.json" - }, - { - "name": "0.40mm Optimal @Elegoo N4Plus 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.40mm Optimal @Elegoo N4Plus 1.0 nozzle.json" - }, - { - "name": "0.60mm Draft @Elegoo N4Plus 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.60mm Draft @Elegoo N4Plus 1.0 nozzle.json" - }, - { - "name": "0.20mm Standard @Elegoo N4Max 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.20mm Standard @Elegoo N4Max 0.4 nozzle.json" - }, - { - "name": "0.12mm Fine @Elegoo N4Max 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.12mm Fine @Elegoo N4Max 0.4 nozzle.json" - }, - { - "name": "0.16mm Optimal @Elegoo N4Max 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.16mm Optimal @Elegoo N4Max 0.4 nozzle.json" - }, - { - "name": "0.20mm Strength @Elegoo N4Max 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.20mm Strength @Elegoo N4Max 0.4 nozzle.json" - }, - { - "name": "0.24mm Draft @Elegoo N4Max 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.24mm Draft @Elegoo N4Max 0.4 nozzle.json" - }, - { - "name": "0.28mm Extra Draft @Elegoo N4Max 0.4 nozzle", - "sub_path": "process/EN4SERIES/0.28mm Extra Draft @Elegoo N4Max 0.4 nozzle.json" - }, - { - "name": "0.10mm Standard @Elegoo N4Max 0.2 nozzle", - "sub_path": "process/EN4SERIES/0.10mm Standard @Elegoo N4Max 0.2 nozzle.json" - }, - { - "name": "0.08mm Optimal @Elegoo N4Max 0.2 nozzle", - "sub_path": "process/EN4SERIES/0.08mm Optimal @Elegoo N4Max 0.2 nozzle.json" - }, - { - "name": "0.12mm Draft @Elegoo N4Max 0.2 nozzle", - "sub_path": "process/EN4SERIES/0.12mm Draft @Elegoo N4Max 0.2 nozzle.json" - }, - { - "name": "0.30mm Standard @Elegoo N4Max 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.30mm Standard @Elegoo N4Max 0.6 nozzle.json" - }, - { - "name": "0.24mm Optimal @Elegoo N4Max 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.24mm Optimal @Elegoo N4Max 0.6 nozzle.json" - }, - { - "name": "0.36mm Draft @Elegoo N4Max 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.36mm Draft @Elegoo N4Max 0.6 nozzle.json" - }, - { - "name": "0.42mm Extra Draft @Elegoo N4Max 0.6 nozzle", - "sub_path": "process/EN4SERIES/0.42mm Extra Draft @Elegoo N4Max 0.6 nozzle.json" - }, - { - "name": "0.40mm Standard @Elegoo N4Max 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.40mm Standard @Elegoo N4Max 0.8 nozzle.json" - }, - { - "name": "0.24mm Fine @Elegoo N4Max 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.24mm Fine @Elegoo N4Max 0.8 nozzle.json" - }, - { - "name": "0.32mm Optimal @Elegoo N4Max 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.32mm Optimal @Elegoo N4Max 0.8 nozzle.json" - }, - { - "name": "0.48mm Draft @Elegoo N4Max 0.8 nozzle", - "sub_path": "process/EN4SERIES/0.48mm Draft @Elegoo N4Max 0.8 nozzle.json" - }, - { - "name": "0.50mm Standard @Elegoo N4Max 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.50mm Standard @Elegoo N4Max 1.0 nozzle.json" - }, - { - "name": "0.30mm Fine @Elegoo N4Max 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.30mm Fine @Elegoo N4Max 1.0 nozzle.json" - }, - { - "name": "0.40mm Optimal @Elegoo N4Max 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.40mm Optimal @Elegoo N4Max 1.0 nozzle.json" - }, - { - "name": "0.60mm Draft @Elegoo N4Max 1.0 nozzle", - "sub_path": "process/EN4SERIES/0.60mm Draft @Elegoo N4Max 1.0 nozzle.json" - }, - { - "name": "0.20mm Standard @Elegoo N3Pro 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.20mm Standard @Elegoo N3Pro 0.4 nozzle.json" - }, - { - "name": "0.12mm Fine @Elegoo N3Pro 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.12mm Fine @Elegoo N3Pro 0.4 nozzle.json" - }, - { - "name": "0.16mm Optimal @Elegoo N3Pro 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.16mm Optimal @Elegoo N3Pro 0.4 nozzle.json" - }, - { - "name": "0.20mm Strength @Elegoo N3Pro 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.20mm Strength @Elegoo N3Pro 0.4 nozzle.json" - }, - { - "name": "0.24mm Draft @Elegoo N3Pro 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.24mm Draft @Elegoo N3Pro 0.4 nozzle.json" - }, - { - "name": "0.28mm Extra Draft @Elegoo N3Pro 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.28mm Extra Draft @Elegoo N3Pro 0.4 nozzle.json" - }, - { - "name": "0.10mm Standard @Elegoo N3Pro 0.2 nozzle", - "sub_path": "process/EN3SERIES/0.10mm Standard @Elegoo N3Pro 0.2 nozzle.json" - }, - { - "name": "0.08mm Optimal @Elegoo N3Pro 0.2 nozzle", - "sub_path": "process/EN3SERIES/0.08mm Optimal @Elegoo N3Pro 0.2 nozzle.json" - }, - { - "name": "0.12mm Draft @Elegoo N3Pro 0.2 nozzle", - "sub_path": "process/EN3SERIES/0.12mm Draft @Elegoo N3Pro 0.2 nozzle.json" - }, - { - "name": "0.30mm Standard @Elegoo N3Pro 0.6 nozzle", - "sub_path": "process/EN3SERIES/0.30mm Standard @Elegoo N3Pro 0.6 nozzle.json" - }, - { - "name": "0.24mm Optimal @Elegoo N3Pro 0.6 nozzle", - "sub_path": "process/EN3SERIES/0.24mm Optimal @Elegoo N3Pro 0.6 nozzle.json" - }, - { - "name": "0.36mm Draft @Elegoo N3Pro 0.6 nozzle", - "sub_path": "process/EN3SERIES/0.36mm Draft @Elegoo N3Pro 0.6 nozzle.json" - }, - { - "name": "0.42mm Extra Draft @Elegoo N3Pro 0.6 nozzle", - "sub_path": "process/EN3SERIES/0.42mm Extra Draft @Elegoo N3Pro 0.6 nozzle.json" - }, - { - "name": "0.40mm Standard @Elegoo N3Pro 0.8 nozzle", - "sub_path": "process/EN3SERIES/0.40mm Standard @Elegoo N3Pro 0.8 nozzle.json" - }, - { - "name": "0.24mm Fine @Elegoo N3Pro 0.8 nozzle", - "sub_path": "process/EN3SERIES/0.24mm Fine @Elegoo N3Pro 0.8 nozzle.json" - }, - { - "name": "0.32mm Optimal @Elegoo N3Pro 0.8 nozzle", - "sub_path": "process/EN3SERIES/0.32mm Optimal @Elegoo N3Pro 0.8 nozzle.json" - }, - { - "name": "0.48mm Draft @Elegoo N3Pro 0.8 nozzle", - "sub_path": "process/EN3SERIES/0.48mm Draft @Elegoo N3Pro 0.8 nozzle.json" - }, - { - "name": "0.50mm Standard @Elegoo N3Pro 1.0 nozzle", - "sub_path": "process/EN3SERIES/0.50mm Standard @Elegoo N3Pro 1.0 nozzle.json" - }, - { - "name": "0.30mm Fine @Elegoo N3Pro 1.0 nozzle", - "sub_path": "process/EN3SERIES/0.30mm Fine @Elegoo N3Pro 1.0 nozzle.json" - }, - { - "name": "0.40mm Optimal @Elegoo N3Pro 1.0 nozzle", - "sub_path": "process/EN3SERIES/0.40mm Optimal @Elegoo N3Pro 1.0 nozzle.json" - }, - { - "name": "0.60mm Draft @Elegoo N3Pro 1.0 nozzle", - "sub_path": "process/EN3SERIES/0.60mm Draft @Elegoo N3Pro 1.0 nozzle.json" - }, - { - "name": "0.20mm Standard @Elegoo N3Plus 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.20mm Standard @Elegoo N3Plus 0.4 nozzle.json" - }, - { - "name": "0.12mm Fine @Elegoo N3Plus 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.12mm Fine @Elegoo N3Plus 0.4 nozzle.json" - }, - { - "name": "0.16mm Optimal @Elegoo N3Plus 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.16mm Optimal @Elegoo N3Plus 0.4 nozzle.json" - }, - { - "name": "0.20mm Strength @Elegoo N3Plus 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.20mm Strength @Elegoo N3Plus 0.4 nozzle.json" - }, - { - "name": "0.24mm Draft @Elegoo N3Plus 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.24mm Draft @Elegoo N3Plus 0.4 nozzle.json" - }, - { - "name": "0.28mm Extra Draft @Elegoo N3Plus 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.28mm Extra Draft @Elegoo N3Plus 0.4 nozzle.json" + "name": "0.10mm Standard @Elegoo N3Max 0.2 nozzle", + "sub_path": "process/EN3SERIES/0.10mm Standard @Elegoo N3Max 0.2 nozzle.json" }, { "name": "0.10mm Standard @Elegoo N3Plus 0.2 nozzle", "sub_path": "process/EN3SERIES/0.10mm Standard @Elegoo N3Plus 0.2 nozzle.json" }, { - "name": "0.08mm Optimal @Elegoo N3Plus 0.2 nozzle", - "sub_path": "process/EN3SERIES/0.08mm Optimal @Elegoo N3Plus 0.2 nozzle.json" + "name": "0.10mm Standard @Elegoo N3Pro 0.2 nozzle", + "sub_path": "process/EN3SERIES/0.10mm Standard @Elegoo N3Pro 0.2 nozzle.json" }, { - "name": "0.12mm Draft @Elegoo N3Plus 0.2 nozzle", - "sub_path": "process/EN3SERIES/0.12mm Draft @Elegoo N3Plus 0.2 nozzle.json" + "name": "0.10mm Standard @Elegoo N4 0.2 nozzle", + "sub_path": "process/EN4SERIES/0.10mm Standard @Elegoo N4 0.2 nozzle.json" }, { - "name": "0.30mm Standard @Elegoo N3Plus 0.6 nozzle", - "sub_path": "process/EN3SERIES/0.30mm Standard @Elegoo N3Plus 0.6 nozzle.json" + "name": "0.10mm Standard @Elegoo N4Max 0.2 nozzle", + "sub_path": "process/EN4SERIES/0.10mm Standard @Elegoo N4Max 0.2 nozzle.json" }, { - "name": "0.24mm Optimal @Elegoo N3Plus 0.6 nozzle", - "sub_path": "process/EN3SERIES/0.24mm Optimal @Elegoo N3Plus 0.6 nozzle.json" + "name": "0.10mm Standard @Elegoo N4Plus 0.2 nozzle", + "sub_path": "process/EN4SERIES/0.10mm Standard @Elegoo N4Plus 0.2 nozzle.json" }, { - "name": "0.36mm Draft @Elegoo N3Plus 0.6 nozzle", - "sub_path": "process/EN3SERIES/0.36mm Draft @Elegoo N3Plus 0.6 nozzle.json" + "name": "0.10mm Standard @Elegoo N4Pro 0.2 nozzle", + "sub_path": "process/EN4SERIES/0.10mm Standard @Elegoo N4Pro 0.2 nozzle.json" }, { - "name": "0.42mm Extra Draft @Elegoo N3Plus 0.6 nozzle", - "sub_path": "process/EN3SERIES/0.42mm Extra Draft @Elegoo N3Plus 0.6 nozzle.json" + "name": "0.20mm Standard @Elegoo C 0.4 nozzle", + "sub_path": "process/EC/0.20mm Standard @Elegoo C 0.4 nozzle.json" }, { - "name": "0.40mm Standard @Elegoo N3Plus 0.8 nozzle", - "sub_path": "process/EN3SERIES/0.40mm Standard @Elegoo N3Plus 0.8 nozzle.json" + "name": "0.20mm Standard @Elegoo CC 0.4 nozzle", + "sub_path": "process/ECC/0.20mm Standard @Elegoo CC 0.4 nozzle.json" }, { - "name": "0.24mm Fine @Elegoo N3Plus 0.8 nozzle", - "sub_path": "process/EN3SERIES/0.24mm Fine @Elegoo N3Plus 0.8 nozzle.json" + "name": "0.20mm Standard @Elegoo CC2 0.4 nozzle", + "sub_path": "process/ECC2/0.20mm Standard @Elegoo CC2 0.4 nozzle.json" }, { - "name": "0.32mm Optimal @Elegoo N3Plus 0.8 nozzle", - "sub_path": "process/EN3SERIES/0.32mm Optimal @Elegoo N3Plus 0.8 nozzle.json" - }, - { - "name": "0.48mm Draft @Elegoo N3Plus 0.8 nozzle", - "sub_path": "process/EN3SERIES/0.48mm Draft @Elegoo N3Plus 0.8 nozzle.json" - }, - { - "name": "0.50mm Standard @Elegoo N3Plus 1.0 nozzle", - "sub_path": "process/EN3SERIES/0.50mm Standard @Elegoo N3Plus 1.0 nozzle.json" - }, - { - "name": "0.30mm Fine @Elegoo N3Plus 1.0 nozzle", - "sub_path": "process/EN3SERIES/0.30mm Fine @Elegoo N3Plus 1.0 nozzle.json" - }, - { - "name": "0.40mm Optimal @Elegoo N3Plus 1.0 nozzle", - "sub_path": "process/EN3SERIES/0.40mm Optimal @Elegoo N3Plus 1.0 nozzle.json" - }, - { - "name": "0.60mm Draft @Elegoo N3Plus 1.0 nozzle", - "sub_path": "process/EN3SERIES/0.60mm Draft @Elegoo N3Plus 1.0 nozzle.json" + "name": "0.20mm Standard @Elegoo Giga 0.4 nozzle", + "sub_path": "process/EOSGIGA/0.20mm Standard @Elegoo Giga 0.4 nozzle.json" }, { "name": "0.20mm Standard @Elegoo N3Max 0.4 nozzle", "sub_path": "process/EN3SERIES/0.20mm Standard @Elegoo N3Max 0.4 nozzle.json" }, { - "name": "0.12mm Fine @Elegoo N3Max 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.12mm Fine @Elegoo N3Max 0.4 nozzle.json" + "name": "0.20mm Standard @Elegoo N3Plus 0.4 nozzle", + "sub_path": "process/EN3SERIES/0.20mm Standard @Elegoo N3Plus 0.4 nozzle.json" }, { - "name": "0.16mm Optimal @Elegoo N3Max 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.16mm Optimal @Elegoo N3Max 0.4 nozzle.json" + "name": "0.20mm Standard @Elegoo N3Pro 0.4 nozzle", + "sub_path": "process/EN3SERIES/0.20mm Standard @Elegoo N3Pro 0.4 nozzle.json" }, { - "name": "0.20mm Strength @Elegoo N3Max 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.20mm Strength @Elegoo N3Max 0.4 nozzle.json" + "name": "0.20mm Standard @Elegoo N4 0.4 nozzle", + "sub_path": "process/EN4SERIES/0.20mm Standard @Elegoo N4 0.4 nozzle.json" }, { - "name": "0.24mm Draft @Elegoo N3Max 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.24mm Draft @Elegoo N3Max 0.4 nozzle.json" + "name": "0.20mm Standard @Elegoo N4Max 0.4 nozzle", + "sub_path": "process/EN4SERIES/0.20mm Standard @Elegoo N4Max 0.4 nozzle.json" }, { - "name": "0.28mm Extra Draft @Elegoo N3Max 0.4 nozzle", - "sub_path": "process/EN3SERIES/0.28mm Extra Draft @Elegoo N3Max 0.4 nozzle.json" + "name": "0.20mm Standard @Elegoo N4Plus 0.4 nozzle", + "sub_path": "process/EN4SERIES/0.20mm Standard @Elegoo N4Plus 0.4 nozzle.json" }, { - "name": "0.10mm Standard @Elegoo N3Max 0.2 nozzle", - "sub_path": "process/EN3SERIES/0.10mm Standard @Elegoo N3Max 0.2 nozzle.json" + "name": "0.20mm Standard @Elegoo N4Pro 0.4 nozzle", + "sub_path": "process/EN4SERIES/0.20mm Standard @Elegoo N4Pro 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Elegoo Neptune 0.4 nozzle", + "sub_path": "process/EN2SERIES/0.20mm Standard @Elegoo Neptune 0.4 nozzle.json" + }, + { + "name": "0.30mm Standard @Elegoo C 0.6 nozzle", + "sub_path": "process/EC/0.30mm Standard @Elegoo C 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Elegoo CC 0.6 nozzle", + "sub_path": "process/ECC/0.30mm Standard @Elegoo CC 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Elegoo CC2 0.6 nozzle", + "sub_path": "process/ECC2/0.30mm Standard @Elegoo CC2 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Elegoo Giga 0.6 nozzle", + "sub_path": "process/EOSGIGA/0.30mm Standard @Elegoo Giga 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Elegoo N3Max 0.6 nozzle", + "sub_path": "process/EN3SERIES/0.30mm Standard @Elegoo N3Max 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Elegoo N3Plus 0.6 nozzle", + "sub_path": "process/EN3SERIES/0.30mm Standard @Elegoo N3Plus 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Elegoo N3Pro 0.6 nozzle", + "sub_path": "process/EN3SERIES/0.30mm Standard @Elegoo N3Pro 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Elegoo N4 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.30mm Standard @Elegoo N4 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Elegoo N4Max 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.30mm Standard @Elegoo N4Max 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Elegoo N4Plus 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.30mm Standard @Elegoo N4Plus 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Elegoo N4Pro 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.30mm Standard @Elegoo N4Pro 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Elegoo Neptune 0.6 nozzle", + "sub_path": "process/EN2SERIES/0.30mm Standard @Elegoo Neptune 0.6 nozzle.json" + }, + { + "name": "0.40mm Standard @Elegoo C 0.8 nozzle", + "sub_path": "process/EC/0.40mm Standard @Elegoo C 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Elegoo CC 0.8 nozzle", + "sub_path": "process/ECC/0.40mm Standard @Elegoo CC 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Elegoo CC2 0.8 nozzle", + "sub_path": "process/ECC2/0.40mm Standard @Elegoo CC2 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Elegoo Giga 0.8 nozzle", + "sub_path": "process/EOSGIGA/0.40mm Standard @Elegoo Giga 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Elegoo N3Max 0.8 nozzle", + "sub_path": "process/EN3SERIES/0.40mm Standard @Elegoo N3Max 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Elegoo N3Plus 0.8 nozzle", + "sub_path": "process/EN3SERIES/0.40mm Standard @Elegoo N3Plus 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Elegoo N3Pro 0.8 nozzle", + "sub_path": "process/EN3SERIES/0.40mm Standard @Elegoo N3Pro 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Elegoo N4 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.40mm Standard @Elegoo N4 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Elegoo N4Max 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.40mm Standard @Elegoo N4Max 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Elegoo N4Plus 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.40mm Standard @Elegoo N4Plus 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Elegoo N4Pro 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.40mm Standard @Elegoo N4Pro 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Elegoo Neptune 0.8 nozzle", + "sub_path": "process/EN2SERIES/0.40mm Standard @Elegoo Neptune 0.8 nozzle.json" + }, + { + "name": "0.50mm Standard @Elegoo N3Max 1.0 nozzle", + "sub_path": "process/EN3SERIES/0.50mm Standard @Elegoo N3Max 1.0 nozzle.json" + }, + { + "name": "0.50mm Standard @Elegoo N3Plus 1.0 nozzle", + "sub_path": "process/EN3SERIES/0.50mm Standard @Elegoo N3Plus 1.0 nozzle.json" + }, + { + "name": "0.50mm Standard @Elegoo N3Pro 1.0 nozzle", + "sub_path": "process/EN3SERIES/0.50mm Standard @Elegoo N3Pro 1.0 nozzle.json" + }, + { + "name": "0.50mm Standard @Elegoo N4 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.50mm Standard @Elegoo N4 1.0 nozzle.json" + }, + { + "name": "0.50mm Standard @Elegoo N4Max 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.50mm Standard @Elegoo N4Max 1.0 nozzle.json" + }, + { + "name": "0.50mm Standard @Elegoo N4Plus 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.50mm Standard @Elegoo N4Plus 1.0 nozzle.json" + }, + { + "name": "0.50mm Standard @Elegoo N4Pro 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.50mm Standard @Elegoo N4Pro 1.0 nozzle.json" }, { "name": "0.08mm Optimal @Elegoo N3Max 0.2 nozzle", @@ -895,8 +323,52 @@ "sub_path": "process/EN3SERIES/0.12mm Draft @Elegoo N3Max 0.2 nozzle.json" }, { - "name": "0.30mm Standard @Elegoo N3Max 0.6 nozzle", - "sub_path": "process/EN3SERIES/0.30mm Standard @Elegoo N3Max 0.6 nozzle.json" + "name": "0.08mm Optimal @Elegoo N3Plus 0.2 nozzle", + "sub_path": "process/EN3SERIES/0.08mm Optimal @Elegoo N3Plus 0.2 nozzle.json" + }, + { + "name": "0.12mm Draft @Elegoo N3Plus 0.2 nozzle", + "sub_path": "process/EN3SERIES/0.12mm Draft @Elegoo N3Plus 0.2 nozzle.json" + }, + { + "name": "0.08mm Optimal @Elegoo N3Pro 0.2 nozzle", + "sub_path": "process/EN3SERIES/0.08mm Optimal @Elegoo N3Pro 0.2 nozzle.json" + }, + { + "name": "0.12mm Draft @Elegoo N3Pro 0.2 nozzle", + "sub_path": "process/EN3SERIES/0.12mm Draft @Elegoo N3Pro 0.2 nozzle.json" + }, + { + "name": "0.08mm Optimal @Elegoo N4 0.2 nozzle", + "sub_path": "process/EN4SERIES/0.08mm Optimal @Elegoo N4 0.2 nozzle.json" + }, + { + "name": "0.12mm Draft @Elegoo N4 0.2 nozzle", + "sub_path": "process/EN4SERIES/0.12mm Draft @Elegoo N4 0.2 nozzle.json" + }, + { + "name": "0.08mm Optimal @Elegoo N4Max 0.2 nozzle", + "sub_path": "process/EN4SERIES/0.08mm Optimal @Elegoo N4Max 0.2 nozzle.json" + }, + { + "name": "0.12mm Draft @Elegoo N4Max 0.2 nozzle", + "sub_path": "process/EN4SERIES/0.12mm Draft @Elegoo N4Max 0.2 nozzle.json" + }, + { + "name": "0.08mm Optimal @Elegoo N4Plus 0.2 nozzle", + "sub_path": "process/EN4SERIES/0.08mm Optimal @Elegoo N4Plus 0.2 nozzle.json" + }, + { + "name": "0.12mm Draft @Elegoo N4Plus 0.2 nozzle", + "sub_path": "process/EN4SERIES/0.12mm Draft @Elegoo N4Plus 0.2 nozzle.json" + }, + { + "name": "0.08mm Optimal @Elegoo N4Pro 0.2 nozzle", + "sub_path": "process/EN4SERIES/0.08mm Optimal @Elegoo N4Pro 0.2 nozzle.json" + }, + { + "name": "0.12mm Draft @Elegoo N4Pro 0.2 nozzle", + "sub_path": "process/EN4SERIES/0.12mm Draft @Elegoo N4Pro 0.2 nozzle.json" }, { "name": "0.24mm Optimal @Elegoo N3Max 0.6 nozzle", @@ -911,8 +383,76 @@ "sub_path": "process/EN3SERIES/0.42mm Extra Draft @Elegoo N3Max 0.6 nozzle.json" }, { - "name": "0.40mm Standard @Elegoo N3Max 0.8 nozzle", - "sub_path": "process/EN3SERIES/0.40mm Standard @Elegoo N3Max 0.8 nozzle.json" + "name": "0.24mm Optimal @Elegoo N3Plus 0.6 nozzle", + "sub_path": "process/EN3SERIES/0.24mm Optimal @Elegoo N3Plus 0.6 nozzle.json" + }, + { + "name": "0.36mm Draft @Elegoo N3Plus 0.6 nozzle", + "sub_path": "process/EN3SERIES/0.36mm Draft @Elegoo N3Plus 0.6 nozzle.json" + }, + { + "name": "0.42mm Extra Draft @Elegoo N3Plus 0.6 nozzle", + "sub_path": "process/EN3SERIES/0.42mm Extra Draft @Elegoo N3Plus 0.6 nozzle.json" + }, + { + "name": "0.24mm Optimal @Elegoo N3Pro 0.6 nozzle", + "sub_path": "process/EN3SERIES/0.24mm Optimal @Elegoo N3Pro 0.6 nozzle.json" + }, + { + "name": "0.36mm Draft @Elegoo N3Pro 0.6 nozzle", + "sub_path": "process/EN3SERIES/0.36mm Draft @Elegoo N3Pro 0.6 nozzle.json" + }, + { + "name": "0.42mm Extra Draft @Elegoo N3Pro 0.6 nozzle", + "sub_path": "process/EN3SERIES/0.42mm Extra Draft @Elegoo N3Pro 0.6 nozzle.json" + }, + { + "name": "0.24mm Optimal @Elegoo N4 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.24mm Optimal @Elegoo N4 0.6 nozzle.json" + }, + { + "name": "0.36mm Draft @Elegoo N4 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.36mm Draft @Elegoo N4 0.6 nozzle.json" + }, + { + "name": "0.42mm Extra Draft @Elegoo N4 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.42mm Extra Draft @Elegoo N4 0.6 nozzle.json" + }, + { + "name": "0.24mm Optimal @Elegoo N4Max 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.24mm Optimal @Elegoo N4Max 0.6 nozzle.json" + }, + { + "name": "0.36mm Draft @Elegoo N4Max 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.36mm Draft @Elegoo N4Max 0.6 nozzle.json" + }, + { + "name": "0.42mm Extra Draft @Elegoo N4Max 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.42mm Extra Draft @Elegoo N4Max 0.6 nozzle.json" + }, + { + "name": "0.24mm Optimal @Elegoo N4Plus 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.24mm Optimal @Elegoo N4Plus 0.6 nozzle.json" + }, + { + "name": "0.36mm Draft @Elegoo N4Plus 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.36mm Draft @Elegoo N4Plus 0.6 nozzle.json" + }, + { + "name": "0.42mm Extra Draft @Elegoo N4Plus 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.42mm Extra Draft @Elegoo N4Plus 0.6 nozzle.json" + }, + { + "name": "0.24mm Optimal @Elegoo N4Pro 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.24mm Optimal @Elegoo N4Pro 0.6 nozzle.json" + }, + { + "name": "0.36mm Draft @Elegoo N4Pro 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.36mm Draft @Elegoo N4Pro 0.6 nozzle.json" + }, + { + "name": "0.42mm Extra Draft @Elegoo N4Pro 0.6 nozzle", + "sub_path": "process/EN4SERIES/0.42mm Extra Draft @Elegoo N4Pro 0.6 nozzle.json" }, { "name": "0.24mm Fine @Elegoo N3Max 0.8 nozzle", @@ -927,8 +467,76 @@ "sub_path": "process/EN3SERIES/0.48mm Draft @Elegoo N3Max 0.8 nozzle.json" }, { - "name": "0.50mm Standard @Elegoo N3Max 1.0 nozzle", - "sub_path": "process/EN3SERIES/0.50mm Standard @Elegoo N3Max 1.0 nozzle.json" + "name": "0.24mm Fine @Elegoo N3Plus 0.8 nozzle", + "sub_path": "process/EN3SERIES/0.24mm Fine @Elegoo N3Plus 0.8 nozzle.json" + }, + { + "name": "0.32mm Optimal @Elegoo N3Plus 0.8 nozzle", + "sub_path": "process/EN3SERIES/0.32mm Optimal @Elegoo N3Plus 0.8 nozzle.json" + }, + { + "name": "0.48mm Draft @Elegoo N3Plus 0.8 nozzle", + "sub_path": "process/EN3SERIES/0.48mm Draft @Elegoo N3Plus 0.8 nozzle.json" + }, + { + "name": "0.24mm Fine @Elegoo N3Pro 0.8 nozzle", + "sub_path": "process/EN3SERIES/0.24mm Fine @Elegoo N3Pro 0.8 nozzle.json" + }, + { + "name": "0.32mm Optimal @Elegoo N3Pro 0.8 nozzle", + "sub_path": "process/EN3SERIES/0.32mm Optimal @Elegoo N3Pro 0.8 nozzle.json" + }, + { + "name": "0.48mm Draft @Elegoo N3Pro 0.8 nozzle", + "sub_path": "process/EN3SERIES/0.48mm Draft @Elegoo N3Pro 0.8 nozzle.json" + }, + { + "name": "0.24mm Fine @Elegoo N4 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.24mm Fine @Elegoo N4 0.8 nozzle.json" + }, + { + "name": "0.32mm Optimal @Elegoo N4 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.32mm Optimal @Elegoo N4 0.8 nozzle.json" + }, + { + "name": "0.48mm Draft @Elegoo N4 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.48mm Draft @Elegoo N4 0.8 nozzle.json" + }, + { + "name": "0.24mm Fine @Elegoo N4Max 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.24mm Fine @Elegoo N4Max 0.8 nozzle.json" + }, + { + "name": "0.32mm Optimal @Elegoo N4Max 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.32mm Optimal @Elegoo N4Max 0.8 nozzle.json" + }, + { + "name": "0.48mm Draft @Elegoo N4Max 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.48mm Draft @Elegoo N4Max 0.8 nozzle.json" + }, + { + "name": "0.24mm Fine @Elegoo N4Plus 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.24mm Fine @Elegoo N4Plus 0.8 nozzle.json" + }, + { + "name": "0.32mm Optimal @Elegoo N4Plus 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.32mm Optimal @Elegoo N4Plus 0.8 nozzle.json" + }, + { + "name": "0.48mm Draft @Elegoo N4Plus 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.48mm Draft @Elegoo N4Plus 0.8 nozzle.json" + }, + { + "name": "0.24mm Fine @Elegoo N4Pro 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.24mm Fine @Elegoo N4Pro 0.8 nozzle.json" + }, + { + "name": "0.32mm Optimal @Elegoo N4Pro 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.32mm Optimal @Elegoo N4Pro 0.8 nozzle.json" + }, + { + "name": "0.48mm Draft @Elegoo N4Pro 0.8 nozzle", + "sub_path": "process/EN4SERIES/0.48mm Draft @Elegoo N4Pro 0.8 nozzle.json" }, { "name": "0.30mm Fine @Elegoo N3Max 1.0 nozzle", @@ -943,136 +551,76 @@ "sub_path": "process/EN3SERIES/0.60mm Draft @Elegoo N3Max 1.0 nozzle.json" }, { - "name": "0.20mm Standard @Elegoo Neptune 0.4 nozzle", - "sub_path": "process/EN2SERIES/0.20mm Standard @Elegoo Neptune 0.4 nozzle.json" + "name": "0.30mm Fine @Elegoo N3Plus 1.0 nozzle", + "sub_path": "process/EN3SERIES/0.30mm Fine @Elegoo N3Plus 1.0 nozzle.json" }, { - "name": "0.12mm Fine @Elegoo Neptune 0.4 nozzle", - "sub_path": "process/EN2SERIES/0.12mm Fine @Elegoo Neptune 0.4 nozzle.json" + "name": "0.40mm Optimal @Elegoo N3Plus 1.0 nozzle", + "sub_path": "process/EN3SERIES/0.40mm Optimal @Elegoo N3Plus 1.0 nozzle.json" }, { - "name": "0.16mm Optimal @Elegoo Neptune 0.4 nozzle", - "sub_path": "process/EN2SERIES/0.16mm Optimal @Elegoo Neptune 0.4 nozzle.json" + "name": "0.60mm Draft @Elegoo N3Plus 1.0 nozzle", + "sub_path": "process/EN3SERIES/0.60mm Draft @Elegoo N3Plus 1.0 nozzle.json" }, { - "name": "0.20mm Strength @Elegoo Neptune 0.4 nozzle", - "sub_path": "process/EN2SERIES/0.20mm Strength @Elegoo Neptune 0.4 nozzle.json" + "name": "0.30mm Fine @Elegoo N3Pro 1.0 nozzle", + "sub_path": "process/EN3SERIES/0.30mm Fine @Elegoo N3Pro 1.0 nozzle.json" }, { - "name": "0.24mm Draft @Elegoo Neptune 0.4 nozzle", - "sub_path": "process/EN2SERIES/0.24mm Draft @Elegoo Neptune 0.4 nozzle.json" + "name": "0.40mm Optimal @Elegoo N3Pro 1.0 nozzle", + "sub_path": "process/EN3SERIES/0.40mm Optimal @Elegoo N3Pro 1.0 nozzle.json" }, { - "name": "0.28mm Extra Draft @Elegoo Neptune 0.4 nozzle", - "sub_path": "process/EN2SERIES/0.28mm Extra Draft @Elegoo Neptune 0.4 nozzle.json" + "name": "0.60mm Draft @Elegoo N3Pro 1.0 nozzle", + "sub_path": "process/EN3SERIES/0.60mm Draft @Elegoo N3Pro 1.0 nozzle.json" }, { - "name": "0.30mm Standard @Elegoo Neptune 0.6 nozzle", - "sub_path": "process/EN2SERIES/0.30mm Standard @Elegoo Neptune 0.6 nozzle.json" + "name": "0.30mm Fine @Elegoo N4 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.30mm Fine @Elegoo N4 1.0 nozzle.json" }, { - "name": "0.24mm Optimal @Elegoo Neptune 0.6 nozzle", - "sub_path": "process/EN2SERIES/0.24mm Optimal @Elegoo Neptune 0.6 nozzle.json" + "name": "0.40mm Optimal @Elegoo N4 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.40mm Optimal @Elegoo N4 1.0 nozzle.json" }, { - "name": "0.36mm Draft @Elegoo Neptune 0.6 nozzle", - "sub_path": "process/EN2SERIES/0.36mm Draft @Elegoo Neptune 0.6 nozzle.json" + "name": "0.60mm Draft @Elegoo N4 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.60mm Draft @Elegoo N4 1.0 nozzle.json" }, { - "name": "0.42mm Extra Draft @Elegoo Neptune 0.6 nozzle", - "sub_path": "process/EN2SERIES/0.42mm Extra Draft @Elegoo Neptune 0.6 nozzle.json" + "name": "0.30mm Fine @Elegoo N4Max 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.30mm Fine @Elegoo N4Max 1.0 nozzle.json" }, { - "name": "0.40mm Standard @Elegoo Neptune 0.8 nozzle", - "sub_path": "process/EN2SERIES/0.40mm Standard @Elegoo Neptune 0.8 nozzle.json" + "name": "0.40mm Optimal @Elegoo N4Max 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.40mm Optimal @Elegoo N4Max 1.0 nozzle.json" }, { - "name": "0.24mm Fine @Elegoo Neptune 0.8 nozzle", - "sub_path": "process/EN2SERIES/0.24mm Fine @Elegoo Neptune 0.8 nozzle.json" + "name": "0.60mm Draft @Elegoo N4Max 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.60mm Draft @Elegoo N4Max 1.0 nozzle.json" }, { - "name": "0.32mm Optimal @Elegoo Neptune 0.8 nozzle", - "sub_path": "process/EN2SERIES/0.32mm Optimal @Elegoo Neptune 0.8 nozzle.json" + "name": "0.30mm Fine @Elegoo N4Plus 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.30mm Fine @Elegoo N4Plus 1.0 nozzle.json" }, { - "name": "0.20mm Standard @Elegoo Giga 0.4 nozzle", - "sub_path": "process/EOSGIGA/0.20mm Standard @Elegoo Giga 0.4 nozzle.json" + "name": "0.40mm Optimal @Elegoo N4Plus 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.40mm Optimal @Elegoo N4Plus 1.0 nozzle.json" }, { - "name": "0.30mm Standard @Elegoo Giga 0.6 nozzle", - "sub_path": "process/EOSGIGA/0.30mm Standard @Elegoo Giga 0.6 nozzle.json" + "name": "0.60mm Draft @Elegoo N4Plus 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.60mm Draft @Elegoo N4Plus 1.0 nozzle.json" }, { - "name": "0.40mm Standard @Elegoo Giga 0.8 nozzle", - "sub_path": "process/EOSGIGA/0.40mm Standard @Elegoo Giga 0.8 nozzle.json" + "name": "0.30mm Fine @Elegoo N4Pro 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.30mm Fine @Elegoo N4Pro 1.0 nozzle.json" }, { - "name": "0.50mm Standard @Elegoo Giga 1.0 nozzle", - "sub_path": "process/EOSGIGA/0.50mm Standard @Elegoo Giga 1.0 nozzle.json" + "name": "0.40mm Optimal @Elegoo N4Pro 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.40mm Optimal @Elegoo N4Pro 1.0 nozzle.json" }, { - "name": "0.20mm Strength @Elegoo Giga 0.4 nozzle", - "sub_path": "process/EOSGIGA/0.20mm Strength @Elegoo Giga 0.4 nozzle.json" - }, - { - "name": "0.16mm Optimal @Elegoo Giga 0.4 nozzle", - "sub_path": "process/EOSGIGA/0.16mm Optimal @Elegoo Giga 0.4 nozzle.json" - }, - { - "name": "0.24mm Draft @Elegoo Giga 0.4 nozzle", - "sub_path": "process/EOSGIGA/0.24mm Draft @Elegoo Giga 0.4 nozzle.json" - }, - { - "name": "0.28mm Extra Draft @Elegoo Giga 0.4 nozzle", - "sub_path": "process/EOSGIGA/0.28mm Extra Draft @Elegoo Giga 0.4 nozzle.json" - }, - { - "name": "0.30mm Strength @Elegoo Giga 0.6 nozzle", - "sub_path": "process/EOSGIGA/0.30mm Strength @Elegoo Giga 0.6 nozzle.json" - }, - { - "name": "0.18mm Fine @Elegoo Giga 0.6 nozzle", - "sub_path": "process/EOSGIGA/0.18mm Fine @Elegoo Giga 0.6 nozzle.json" - }, - { - "name": "0.24mm Optimal @Elegoo Giga 0.6 nozzle", - "sub_path": "process/EOSGIGA/0.24mm Optimal @Elegoo Giga 0.6 nozzle.json" - }, - { - "name": "0.36mm Draft @Elegoo Giga 0.6 nozzle", - "sub_path": "process/EOSGIGA/0.36mm Draft @Elegoo Giga 0.6 nozzle.json" - }, - { - "name": "0.42mm Extra Draft @Elegoo Giga 0.6 nozzle", - "sub_path": "process/EOSGIGA/0.42mm Extra Draft @Elegoo Giga 0.6 nozzle.json" - }, - { - "name": "0.24mm Fine @Elegoo Giga 0.8 nozzle", - "sub_path": "process/EOSGIGA/0.24mm Fine @Elegoo Giga 0.8 nozzle.json" - }, - { - "name": "0.32mm Optimal @Elegoo Giga 0.8 nozzle", - "sub_path": "process/EOSGIGA/0.32mm Optimal @Elegoo Giga 0.8 nozzle.json" - }, - { - "name": "0.48mm Draft @Elegoo Giga 0.8 nozzle", - "sub_path": "process/EOSGIGA/0.48mm Draft @Elegoo Giga 0.8 nozzle.json" - }, - { - "name": "0.56mm Extra Draft @Elegoo Giga 0.8 nozzle", - "sub_path": "process/EOSGIGA/0.56mm Extra Draft @Elegoo Giga 0.8 nozzle.json" - }, - { - "name": "0.60mm Draft @Elegoo Giga 1.0 nozzle", - "sub_path": "process/EOSGIGA/0.60mm Draft @Elegoo Giga 1.0 nozzle.json" - }, - { - "name": "0.40mm Optimal @Elegoo Giga 1.0 nozzle", - "sub_path": "process/EOSGIGA/0.40mm Optimal @Elegoo Giga 1.0 nozzle.json" - }, - { - "name": "0.30mm Fine @Elegoo Giga 1.0 nozzle", - "sub_path": "process/EOSGIGA/0.30mm Fine @Elegoo Giga 1.0 nozzle.json" + "name": "0.60mm Draft @Elegoo N4Pro 1.0 nozzle", + "sub_path": "process/EN4SERIES/0.60mm Draft @Elegoo N4Pro 1.0 nozzle.json" } ], "filament_list": [ @@ -1080,806 +628,174 @@ "name": "fdm_filament_common", "sub_path": "filament/fdm_filament_common.json" }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, { "name": "fdm_filament_abs", "sub_path": "filament/fdm_filament_abs.json" }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, { "name": "fdm_filament_asa", "sub_path": "filament/fdm_filament_asa.json" }, { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" + "name": "fdm_filament_hips", + "sub_path": "filament/fdm_filament_hips.json" }, { "name": "fdm_filament_pa", "sub_path": "filament/fdm_filament_pa.json" }, { - "name": "fdm_filament_hips", - "sub_path": "filament/fdm_filament_hips.json" + "name": "fdm_filament_paht", + "sub_path": "filament/fdm_filament_paht.json" }, { - "name": "fdm_filament_pps", - "sub_path": "filament/fdm_filament_pps.json" + "name": "fdm_filament_pc", + "sub_path": "filament/fdm_filament_pc.json" + }, + { + "name": "fdm_filament_pet", + "sub_path": "filament/fdm_filament_pet.json" + }, + { + "name": "fdm_filament_pla", + "sub_path": "filament/fdm_filament_pla.json" }, { "name": "fdm_filament_ppa", "sub_path": "filament/fdm_filament_ppa.json" }, { - "name": "Generic ABS @base", - "sub_path": "filament/BASE/Generic ABS @base.json" + "name": "fdm_filament_pps", + "sub_path": "filament/fdm_filament_pps.json" }, { - "name": "Generic PA @base", - "sub_path": "filament/BASE/Generic PA @base.json" + "name": "fdm_filament_pva", + "sub_path": "filament/fdm_filament_pva.json" }, { - "name": "Generic PETG @base", - "sub_path": "filament/BASE/Generic PETG @base.json" - }, - { - "name": "Generic PET @base", - "sub_path": "filament/BASE/Generic PET @base.json" - }, - { - "name": "Generic PLA @base", - "sub_path": "filament/BASE/Generic PLA @base.json" - }, - { - "name": "Generic PC @base", - "sub_path": "filament/BASE/Generic PC @base.json" - }, - { - "name": "Generic ASA @base", - "sub_path": "filament/BASE/Generic ASA @base.json" - }, - { - "name": "Elegoo TPU @base", - "sub_path": "filament/BASE/Elegoo TPU @base.json" - }, - { - "name": "Elegoo PETG @base", - "sub_path": "filament/BASE/Elegoo PETG @base.json" - }, - { - "name": "Elegoo PLA @base", - "sub_path": "filament/BASE/Elegoo PLA @base.json" - }, - { - "name": "Elegoo ASA @base", - "sub_path": "filament/BASE/Elegoo ASA @base.json" + "name": "fdm_filament_tpu", + "sub_path": "filament/fdm_filament_tpu.json" }, { "name": "Elegoo ABS @base", "sub_path": "filament/BASE/Elegoo ABS @base.json" }, + { + "name": "Generic ABS @base", + "sub_path": "filament/BASE/Generic ABS @base.json" + }, + { + "name": "Elegoo ASA @base", + "sub_path": "filament/BASE/Elegoo ASA @base.json" + }, + { + "name": "Generic ASA @base", + "sub_path": "filament/BASE/Generic ASA @base.json" + }, { "name": "Elegoo PAHT @base", "sub_path": "filament/BASE/Elegoo PAHT @base.json" }, + { + "name": "Generic PA @base", + "sub_path": "filament/BASE/Generic PA @base.json" + }, { "name": "Elegoo PC @base", "sub_path": "filament/BASE/Elegoo PC @base.json" }, { - "name": "Elegoo ASA @0.2 nozzle", - "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo ASA @0.2 nozzle.json" + "name": "Generic PC @base", + "sub_path": "filament/BASE/Generic PC @base.json" }, { - "name": "Elegoo PETG @0.2 nozzle", - "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PETG @0.2 nozzle.json" + "name": "Elegoo PETG @base", + "sub_path": "filament/BASE/Elegoo PETG @base.json" }, { - "name": "Elegoo PETG PRO @0.2 nozzle", - "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PETG PRO @0.2 nozzle.json" + "name": "Generic PET @base", + "sub_path": "filament/BASE/Generic PET @base.json" }, { - "name": "Elegoo PLA @0.2 nozzle", - "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA @0.2 nozzle.json" + "name": "Generic PETG @base", + "sub_path": "filament/BASE/Generic PETG @base.json" }, { - "name": "Elegoo PLA Matte @0.2 nozzle", - "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA Matte @0.2 nozzle.json" + "name": "Elegoo PLA @base", + "sub_path": "filament/BASE/Elegoo PLA @base.json" }, { - "name": "Elegoo PLA PRO @0.2 nozzle", - "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA PRO @0.2 nozzle.json" + "name": "Generic PLA @base", + "sub_path": "filament/BASE/Generic PLA @base.json" }, { - "name": "Elegoo PLA Silk @0.2 nozzle", - "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA Silk @0.2 nozzle.json" - }, - { - "name": "Elegoo PLA+ @0.2 nozzle", - "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA+ @0.2 nozzle.json" - }, - { - "name": "Elegoo Rapid PLA+ @0.2 nozzle", - "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo Rapid PLA+ @0.2 nozzle.json" - }, - { - "name": "Elegoo Rapid PETG @0.2 nozzle", - "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo Rapid PETG @0.2 nozzle.json" + "name": "Elegoo TPU @base", + "sub_path": "filament/BASE/Elegoo TPU @base.json" }, { "name": "Elegoo ABS @0.2 nozzle", "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo ABS @0.2 nozzle.json" }, { - "name": "Elegoo PC @0.2 nozzle", - "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PC @0.2 nozzle.json" - }, - { - "name": "Elegoo PC-FR @0.2 nozzle", - "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PC-FR @0.2 nozzle.json" - }, - { - "name": "Elegoo PLA Basic @0.2 nozzle", - "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA Basic @0.2 nozzle.json" - }, - { - "name": "Elegoo PETG Translucent @0.2 nozzle", - "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PETG Translucent @0.2 nozzle.json" - }, - { - "name": "Elegoo PLA @ECC", - "sub_path": "filament/ECC/Elegoo PLA @ECC.json" - }, - { - "name": "Elegoo PLA PRO @ECC", - "sub_path": "filament/ECC/Elegoo PLA PRO @ECC.json" - }, - { - "name": "Elegoo PLA+ @ECC", - "sub_path": "filament/ECC/Elegoo PLA+ @ECC.json" - }, - { - "name": "Elegoo Rapid PLA+ @ECC", - "sub_path": "filament/ECC/Elegoo Rapid PLA+ @ECC.json" - }, - { - "name": "Elegoo PLA Silk @ECC", - "sub_path": "filament/ECC/Elegoo PLA Silk @ECC.json" - }, - { - "name": "Elegoo PLA Matte @ECC", - "sub_path": "filament/ECC/Elegoo PLA Matte @ECC.json" - }, - { - "name": "Elegoo PLA-CF @ECC", - "sub_path": "filament/ECC/Elegoo PLA-CF @ECC.json" - }, - { - "name": "Elegoo PETG @ECC", - "sub_path": "filament/ECC/Elegoo PETG @ECC.json" - }, - { - "name": "Elegoo PETG PRO @ECC", - "sub_path": "filament/ECC/Elegoo PETG PRO @ECC.json" - }, - { - "name": "Elegoo Rapid PETG @ECC", - "sub_path": "filament/ECC/Elegoo Rapid PETG @ECC.json" - }, - { - "name": "Elegoo TPU 95A @ECC", - "sub_path": "filament/ECC/Elegoo TPU 95A @ECC.json" - }, - { - "name": "Elegoo ASA @ECC", - "sub_path": "filament/ECC/Elegoo ASA @ECC.json" + "name": "Elegoo ABS @EC", + "sub_path": "filament/EC/Elegoo ABS @EC.json" }, { "name": "Elegoo ABS @ECC", "sub_path": "filament/ECC/Elegoo ABS @ECC.json" }, - { - "name": "Elegoo PLA Galaxy @ECC", - "sub_path": "filament/ECC/Elegoo PLA Galaxy @ECC.json" - }, - { - "name": "Elegoo PLA Basic @ECC", - "sub_path": "filament/ECC/Elegoo PLA Basic @ECC.json" - }, - { - "name": "Elegoo PLA Marble @ECC", - "sub_path": "filament/ECC/Elegoo PLA Marble @ECC.json" - }, - { - "name": "Elegoo PLA Sparkle @ECC", - "sub_path": "filament/ECC/Elegoo PLA Sparkle @ECC.json" - }, - { - "name": "Elegoo PLA Wood @ECC", - "sub_path": "filament/ECC/Elegoo PLA Wood @ECC.json" - }, - { - "name": "Elegoo PAHT-CF @ECC", - "sub_path": "filament/ECC/Elegoo PAHT-CF @ECC.json" - }, - { - "name": "Elegoo PC @ECC", - "sub_path": "filament/ECC/Elegoo PC @ECC.json" - }, - { - "name": "Elegoo PC-FR @ECC", - "sub_path": "filament/ECC/Elegoo PC-FR @ECC.json" - }, - { - "name": "Elegoo PETG-CF @ECC", - "sub_path": "filament/ECC/Elegoo PETG-CF @ECC.json" - }, - { - "name": "Elegoo PETG-GF @ECC", - "sub_path": "filament/ECC/Elegoo PETG-GF @ECC.json" - }, - { - "name": "Elegoo PETG Translucent @ECC", - "sub_path": "filament/ECC/Elegoo PETG Translucent @ECC.json" - }, - { - "name": "Elegoo Rapid TPU 95A @ECC", - "sub_path": "filament/ECC/Elegoo Rapid TPU 95A @ECC.json" - }, - { - "name": "Elegoo PLA @EC", - "sub_path": "filament/EC/Elegoo PLA @EC.json" - }, - { - "name": "Elegoo PLA PRO @EC", - "sub_path": "filament/EC/Elegoo PLA PRO @EC.json" - }, - { - "name": "Elegoo PLA+ @EC", - "sub_path": "filament/EC/Elegoo PLA+ @EC.json" - }, - { - "name": "Elegoo Rapid PLA+ @EC", - "sub_path": "filament/EC/Elegoo Rapid PLA+ @EC.json" - }, - { - "name": "Elegoo PLA Silk @EC", - "sub_path": "filament/EC/Elegoo PLA Silk @EC.json" - }, - { - "name": "Elegoo PLA Matte @EC", - "sub_path": "filament/EC/Elegoo PLA Matte @EC.json" - }, - { - "name": "Elegoo PETG @EC", - "sub_path": "filament/EC/Elegoo PETG @EC.json" - }, - { - "name": "Elegoo PETG PRO @EC", - "sub_path": "filament/EC/Elegoo PETG PRO @EC.json" - }, - { - "name": "Elegoo Rapid PETG @EC", - "sub_path": "filament/EC/Elegoo Rapid PETG @EC.json" - }, - { - "name": "Elegoo TPU 95A @EC", - "sub_path": "filament/EC/Elegoo TPU 95A @EC.json" - }, - { - "name": "Elegoo ASA @EC", - "sub_path": "filament/EC/Elegoo ASA @EC.json" - }, - { - "name": "Elegoo ABS @EC", - "sub_path": "filament/EC/Elegoo ABS @EC.json" - }, - { - "name": "Elegoo PLA Galaxy @EC", - "sub_path": "filament/EC/Elegoo PLA Galaxy @EC.json" - }, - { - "name": "Elegoo PLA Basic @EC", - "sub_path": "filament/EC/Elegoo PLA Basic @EC.json" - }, - { - "name": "Elegoo PLA Marble @EC", - "sub_path": "filament/EC/Elegoo PLA Marble @EC.json" - }, - { - "name": "Elegoo PLA Sparkle @EC", - "sub_path": "filament/EC/Elegoo PLA Sparkle @EC.json" - }, - { - "name": "Elegoo PLA Wood @EC", - "sub_path": "filament/EC/Elegoo PLA Wood @EC.json" - }, - { - "name": "Elegoo PAHT-CF @EC", - "sub_path": "filament/EC/Elegoo PAHT-CF @EC.json" - }, - { - "name": "Elegoo PC @EC", - "sub_path": "filament/EC/Elegoo PC @EC.json" - }, - { - "name": "Elegoo PC-FR @EC", - "sub_path": "filament/EC/Elegoo PC-FR @EC.json" - }, - { - "name": "Elegoo PETG-CF @EC", - "sub_path": "filament/EC/Elegoo PETG-CF @EC.json" - }, - { - "name": "Elegoo PETG-GF @EC", - "sub_path": "filament/EC/Elegoo PETG-GF @EC.json" - }, - { - "name": "Elegoo PETG Translucent @EC", - "sub_path": "filament/EC/Elegoo PETG Translucent @EC.json" - }, - { - "name": "Elegoo Rapid TPU 95A @EC", - "sub_path": "filament/EC/Elegoo Rapid TPU 95A @EC.json" - }, - { - "name": "Elegoo PLA @ECC2", - "sub_path": "filament/ECC2/Elegoo PLA @ECC2.json" - }, - { - "name": "Elegoo PLA PRO @ECC2", - "sub_path": "filament/ECC2/Elegoo PLA PRO @ECC2.json" - }, - { - "name": "Elegoo PLA+ @ECC2", - "sub_path": "filament/ECC2/Elegoo PLA+ @ECC2.json" - }, - { - "name": "Elegoo Rapid PLA+ @ECC2", - "sub_path": "filament/ECC2/Elegoo Rapid PLA+ @ECC2.json" - }, - { - "name": "Elegoo PLA Silk @ECC2", - "sub_path": "filament/ECC2/Elegoo PLA Silk @ECC2.json" - }, - { - "name": "Elegoo PLA Matte @ECC2", - "sub_path": "filament/ECC2/Elegoo PLA Matte @ECC2.json" - }, - { - "name": "Elegoo PLA-CF @ECC2", - "sub_path": "filament/ECC2/Elegoo PLA-CF @ECC2.json" - }, - { - "name": "Elegoo PETG @ECC2", - "sub_path": "filament/ECC2/Elegoo PETG @ECC2.json" - }, - { - "name": "Elegoo PETG PRO @ECC2", - "sub_path": "filament/ECC2/Elegoo PETG PRO @ECC2.json" - }, - { - "name": "Elegoo Rapid PETG @ECC2", - "sub_path": "filament/ECC2/Elegoo Rapid PETG @ECC2.json" - }, - { - "name": "Elegoo TPU 95A @ECC2", - "sub_path": "filament/ECC2/Elegoo TPU 95A @ECC2.json" - }, - { - "name": "Elegoo ASA @ECC2", - "sub_path": "filament/ECC2/Elegoo ASA @ECC2.json" - }, { "name": "Elegoo ABS @ECC2", "sub_path": "filament/ECC2/Elegoo ABS @ECC2.json" }, - { - "name": "Elegoo PLA Galaxy @ECC2", - "sub_path": "filament/ECC2/Elegoo PLA Galaxy @ECC2.json" - }, - { - "name": "Elegoo PLA Basic @ECC2", - "sub_path": "filament/ECC2/Elegoo PLA Basic @ECC2.json" - }, - { - "name": "Elegoo PLA Marble @ECC2", - "sub_path": "filament/ECC2/Elegoo PLA Marble @ECC2.json" - }, - { - "name": "Elegoo PLA Sparkle @ECC2", - "sub_path": "filament/ECC2/Elegoo PLA Sparkle @ECC2.json" - }, - { - "name": "Elegoo PLA Wood @ECC2", - "sub_path": "filament/ECC2/Elegoo PLA Wood @ECC2.json" - }, - { - "name": "Elegoo PAHT-CF @ECC2", - "sub_path": "filament/ECC2/Elegoo PAHT-CF @ECC2.json" - }, - { - "name": "Elegoo PC @ECC2", - "sub_path": "filament/ECC2/Elegoo PC @ECC2.json" - }, - { - "name": "Elegoo PC-FR @ECC2", - "sub_path": "filament/ECC2/Elegoo PC-FR @ECC2.json" - }, - { - "name": "Elegoo PETG-CF @ECC2", - "sub_path": "filament/ECC2/Elegoo PETG-CF @ECC2.json" - }, - { - "name": "Elegoo PETG-GF @ECC2", - "sub_path": "filament/ECC2/Elegoo PETG-GF @ECC2.json" - }, - { - "name": "Elegoo PETG Translucent @ECC2", - "sub_path": "filament/ECC2/Elegoo PETG Translucent @ECC2.json" - }, - { - "name": "Elegoo ASA-CF @ECC2", - "sub_path": "filament/ECC2/Elegoo ASA-CF @ECC2.json" - }, - { - "name": "Elegoo PET-CF @ECC2", - "sub_path": "filament/ECC2/Elegoo PET-CF @ECC2.json" - }, - { - "name": "Elegoo PETG HF @ECC2", - "sub_path": "filament/ECC2/Elegoo PETG HF @ECC2.json" - }, - { - "name": "Elegoo PLA Glow @ECC2", - "sub_path": "filament/ECC2/Elegoo PLA Glow @ECC2.json" - }, - { - "name": "Elegoo PLA Translucent2 @ECC2", - "sub_path": "filament/ECC2/Elegoo PLA Translucent2 @ECC2.json" - }, - { - "name": "Elegoo Rapid TPU 95A @ECC2", - "sub_path": "filament/ECC2/Elegoo Rapid TPU 95A @ECC2.json" - }, - { - "name": "Elegoo PLA @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PLA @EN4 Series.json" - }, - { - "name": "Elegoo PLA PRO @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PLA PRO @EN4 Series.json" - }, - { - "name": "Elegoo PLA+ @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PLA+ @EN4 Series.json" - }, - { - "name": "Elegoo Rapid PLA+ @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo Rapid PLA+ @EN4 Series.json" - }, - { - "name": "Elegoo PLA Silk @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PLA Silk @EN4 Series.json" - }, - { - "name": "Elegoo PLA Matte @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PLA Matte @EN4 Series.json" - }, - { - "name": "Elegoo PLA-CF @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PLA-CF @EN4 Series.json" - }, - { - "name": "Elegoo PETG @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PETG @EN4 Series.json" - }, - { - "name": "Elegoo PETG PRO @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PETG PRO @EN4 Series.json" - }, - { - "name": "Elegoo Rapid PETG @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo Rapid PETG @EN4 Series.json" - }, - { - "name": "Elegoo TPU 95A @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo TPU 95A @EN4 Series.json" - }, - { - "name": "Elegoo ASA @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo ASA @EN4 Series.json" - }, - { - "name": "Elegoo PLA Galaxy @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PLA Galaxy @EN4 Series.json" - }, - { - "name": "Elegoo PLA Basic @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PLA Basic @EN4 Series.json" - }, - { - "name": "Elegoo PLA Marble @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PLA Marble @EN4 Series.json" - }, - { - "name": "Elegoo PLA Sparkle @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PLA Sparkle @EN4 Series.json" - }, - { - "name": "Elegoo PLA Wood @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PLA Wood @EN4 Series.json" - }, - { - "name": "Elegoo PETG-CF @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PETG-CF @EN4 Series.json" - }, - { - "name": "Elegoo PETG-GF @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PETG-GF @EN4 Series.json" - }, - { - "name": "Elegoo PETG Translucent @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo PETG Translucent @EN4 Series.json" - }, - { - "name": "Elegoo Rapid TPU 95A @EN4 Series", - "sub_path": "filament/EN4SERIES/Elegoo Rapid TPU 95A @EN4 Series.json" - }, - { - "name": "Elegoo PLA @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PLA @EN3 Series.json" - }, - { - "name": "Elegoo PLA PRO @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PLA PRO @EN3 Series.json" - }, - { - "name": "Elegoo PLA+ @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PLA+ @EN3 Series.json" - }, - { - "name": "Elegoo Rapid PLA+ @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo Rapid PLA+ @EN3 Series.json" - }, - { - "name": "Elegoo PLA Silk @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PLA Silk @EN3 Series.json" - }, - { - "name": "Elegoo PLA Matte @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PLA Matte @EN3 Series.json" - }, - { - "name": "Elegoo PLA-CF @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PLA-CF @EN3 Series.json" - }, - { - "name": "Elegoo PETG @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PETG @EN3 Series.json" - }, - { - "name": "Elegoo PETG PRO @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PETG PRO @EN3 Series.json" - }, - { - "name": "Elegoo Rapid PETG @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo Rapid PETG @EN3 Series.json" - }, - { - "name": "Elegoo TPU 95A @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo TPU 95A @EN3 Series.json" - }, - { - "name": "Elegoo ASA @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo ASA @EN3 Series.json" - }, - { - "name": "Elegoo PLA Galaxy @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PLA Galaxy @EN3 Series.json" - }, - { - "name": "Elegoo PLA Basic @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PLA Basic @EN3 Series.json" - }, - { - "name": "Elegoo PLA Marble @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PLA Marble @EN3 Series.json" - }, - { - "name": "Elegoo PLA Sparkle @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PLA Sparkle @EN3 Series.json" - }, - { - "name": "Elegoo PLA Wood @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PLA Wood @EN3 Series.json" - }, - { - "name": "Elegoo PETG-CF @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PETG-CF @EN3 Series.json" - }, - { - "name": "Elegoo PETG-GF @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PETG-GF @EN3 Series.json" - }, - { - "name": "Elegoo PETG Translucent @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo PETG Translucent @EN3 Series.json" - }, - { - "name": "Elegoo Rapid TPU 95A @EN3 Series", - "sub_path": "filament/EN3SERIES/Elegoo Rapid TPU 95A @EN3 Series.json" - }, - { - "name": "Elegoo PLA @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PLA @EN2 Series.json" - }, - { - "name": "Elegoo PLA PRO @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PLA PRO @EN2 Series.json" - }, - { - "name": "Elegoo PLA+ @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PLA+ @EN2 Series.json" - }, - { - "name": "Elegoo Rapid PLA+ @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo Rapid PLA+ @EN2 Series.json" - }, - { - "name": "Elegoo PLA Silk @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PLA Silk @EN2 Series.json" - }, - { - "name": "Elegoo PLA Matte @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PLA Matte @EN2 Series.json" - }, - { - "name": "Elegoo PLA-CF @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PLA-CF @EN2 Series.json" - }, - { - "name": "Elegoo PETG @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PETG @EN2 Series.json" - }, - { - "name": "Elegoo PETG PRO @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PETG PRO @EN2 Series.json" - }, - { - "name": "Elegoo Rapid PETG @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo Rapid PETG @EN2 Series.json" - }, - { - "name": "Elegoo ASA @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo ASA @EN2 Series.json" - }, - { - "name": "Elegoo PLA Galaxy @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PLA Galaxy @EN2 Series.json" - }, - { - "name": "Elegoo PLA Basic @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PLA Basic @EN2 Series.json" - }, - { - "name": "Elegoo PLA Marble @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PLA Marble @EN2 Series.json" - }, - { - "name": "Elegoo PLA Sparkle @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PLA Sparkle @EN2 Series.json" - }, - { - "name": "Elegoo PLA Wood @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PLA Wood @EN2 Series.json" - }, - { - "name": "Elegoo PETG-CF @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PETG-CF @EN2 Series.json" - }, - { - "name": "Elegoo PETG-GF @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PETG-GF @EN2 Series.json" - }, - { - "name": "Elegoo PETG Translucent @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo PETG Translucent @EN2 Series.json" - }, - { - "name": "Elegoo Rapid TPU 95A @EN2 Series", - "sub_path": "filament/EN2SERIES/Elegoo Rapid TPU 95A @EN2 Series.json" - }, - { - "name": "Elegoo ASA @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo ASA @Elegoo Giga.json" - }, - { - "name": "Elegoo PETG @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo PETG @Elegoo Giga.json" - }, - { - "name": "Elegoo PETG PRO @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo PETG PRO @Elegoo Giga.json" - }, - { - "name": "Elegoo PLA @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo PLA @Elegoo Giga.json" - }, - { - "name": "Elegoo PLA Matte @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo PLA Matte @Elegoo Giga.json" - }, - { - "name": "Elegoo Rapid PETG @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo Rapid PETG @Elegoo Giga.json" - }, - { - "name": "Elegoo Rapid PLA+ @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo Rapid PLA+ @Elegoo Giga.json" - }, - { - "name": "Elegoo PLA Galaxy @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo PLA Galaxy @Elegoo Giga.json" - }, - { - "name": "Elegoo PLA Basic @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo PLA Basic @Elegoo Giga.json" - }, - { - "name": "Elegoo PLA Marble @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo PLA Marble @Elegoo Giga.json" - }, - { - "name": "Elegoo PLA Sparkle @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo PLA Sparkle @Elegoo Giga.json" - }, - { - "name": "Elegoo PLA Wood @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo PLA Wood @Elegoo Giga.json" - }, - { - "name": "Elegoo PETG-CF @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo PETG-CF @Elegoo Giga.json" - }, - { - "name": "Elegoo PETG-GF @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo PETG-GF @Elegoo Giga.json" - }, - { - "name": "Elegoo PETG Translucent @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo PETG Translucent @Elegoo Giga.json" - }, - { - "name": "Elegoo Rapid TPU 95A @Elegoo Giga", - "sub_path": "filament/EOSGIGA/Elegoo Rapid TPU 95A @Elegoo Giga.json" - }, - { - "name": "Generic ABS @Elegoo Centauri", - "sub_path": "filament/Generic/Generic ABS @Elegoo Centauri.json" - }, { "name": "Generic ABS @Elegoo", "sub_path": "filament/Generic/Generic ABS @Elegoo.json" }, + { + "name": "Generic ABS @Elegoo Centauri", + "sub_path": "filament/Generic/Generic ABS @Elegoo Centauri.json" + }, { "name": "Generic ABS-CF @Elegoo Centauri", "sub_path": "filament/Generic/Generic ABS-CF @Elegoo Centauri.json" }, + { + "name": "Elegoo ASA @0.2 nozzle", + "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo ASA @0.2 nozzle.json" + }, + { + "name": "Elegoo ASA @EC", + "sub_path": "filament/EC/Elegoo ASA @EC.json" + }, + { + "name": "Elegoo ASA @ECC", + "sub_path": "filament/ECC/Elegoo ASA @ECC.json" + }, + { + "name": "Elegoo ASA @ECC2", + "sub_path": "filament/ECC2/Elegoo ASA @ECC2.json" + }, + { + "name": "Elegoo ASA @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo ASA @EN2 Series.json" + }, + { + "name": "Elegoo ASA @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo ASA @EN3 Series.json" + }, + { + "name": "Elegoo ASA @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo ASA @EN4 Series.json" + }, + { + "name": "Elegoo ASA @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo ASA @Elegoo Giga.json" + }, + { + "name": "Elegoo ASA-CF @ECC2", + "sub_path": "filament/ECC2/Elegoo ASA-CF @ECC2.json" + }, { "name": "Generic ASA @Elegoo", "sub_path": "filament/Generic/Generic ASA @Elegoo.json" @@ -1888,6 +804,18 @@ "name": "Generic ASA-CF @Elegoo Centauri", "sub_path": "filament/Generic/Generic ASA-CF @Elegoo Centauri.json" }, + { + "name": "Elegoo PAHT-CF @EC", + "sub_path": "filament/EC/Elegoo PAHT-CF @EC.json" + }, + { + "name": "Elegoo PAHT-CF @ECC", + "sub_path": "filament/ECC/Elegoo PAHT-CF @ECC.json" + }, + { + "name": "Elegoo PAHT-CF @ECC2", + "sub_path": "filament/ECC2/Elegoo PAHT-CF @ECC2.json" + }, { "name": "Generic PA @Elegoo", "sub_path": "filament/Generic/Generic PA @Elegoo.json" @@ -1896,6 +824,38 @@ "name": "Generic PA6-CF @Elegoo", "sub_path": "filament/Generic/Generic PA6-CF @Elegoo.json" }, + { + "name": "Elegoo PC @0.2 nozzle", + "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PC @0.2 nozzle.json" + }, + { + "name": "Elegoo PC @EC", + "sub_path": "filament/EC/Elegoo PC @EC.json" + }, + { + "name": "Elegoo PC @ECC", + "sub_path": "filament/ECC/Elegoo PC @ECC.json" + }, + { + "name": "Elegoo PC @ECC2", + "sub_path": "filament/ECC2/Elegoo PC @ECC2.json" + }, + { + "name": "Elegoo PC-FR @0.2 nozzle", + "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PC-FR @0.2 nozzle.json" + }, + { + "name": "Elegoo PC-FR @EC", + "sub_path": "filament/EC/Elegoo PC-FR @EC.json" + }, + { + "name": "Elegoo PC-FR @ECC", + "sub_path": "filament/ECC/Elegoo PC-FR @ECC.json" + }, + { + "name": "Elegoo PC-FR @ECC2", + "sub_path": "filament/ECC2/Elegoo PC-FR @ECC2.json" + }, { "name": "Generic PC @Elegoo", "sub_path": "filament/Generic/Generic PC @Elegoo.json" @@ -1904,6 +864,198 @@ "name": "Generic PC-CF @Elegoo", "sub_path": "filament/Generic/Generic PC-CF @Elegoo.json" }, + { + "name": "Elegoo PET-CF @ECC2", + "sub_path": "filament/ECC2/Elegoo PET-CF @ECC2.json" + }, + { + "name": "Elegoo PETG @0.2 nozzle", + "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PETG @0.2 nozzle.json" + }, + { + "name": "Elegoo PETG @EC", + "sub_path": "filament/EC/Elegoo PETG @EC.json" + }, + { + "name": "Elegoo PETG @ECC", + "sub_path": "filament/ECC/Elegoo PETG @ECC.json" + }, + { + "name": "Elegoo PETG @ECC2", + "sub_path": "filament/ECC2/Elegoo PETG @ECC2.json" + }, + { + "name": "Elegoo PETG @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PETG @EN2 Series.json" + }, + { + "name": "Elegoo PETG @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PETG @EN3 Series.json" + }, + { + "name": "Elegoo PETG @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PETG @EN4 Series.json" + }, + { + "name": "Elegoo PETG @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo PETG @Elegoo Giga.json" + }, + { + "name": "Elegoo PETG HF @ECC2", + "sub_path": "filament/ECC2/Elegoo PETG HF @ECC2.json" + }, + { + "name": "Elegoo PETG PRO @0.2 nozzle", + "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PETG PRO @0.2 nozzle.json" + }, + { + "name": "Elegoo PETG PRO @EC", + "sub_path": "filament/EC/Elegoo PETG PRO @EC.json" + }, + { + "name": "Elegoo PETG PRO @ECC", + "sub_path": "filament/ECC/Elegoo PETG PRO @ECC.json" + }, + { + "name": "Elegoo PETG PRO @ECC2", + "sub_path": "filament/ECC2/Elegoo PETG PRO @ECC2.json" + }, + { + "name": "Elegoo PETG PRO @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PETG PRO @EN2 Series.json" + }, + { + "name": "Elegoo PETG PRO @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PETG PRO @EN3 Series.json" + }, + { + "name": "Elegoo PETG PRO @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PETG PRO @EN4 Series.json" + }, + { + "name": "Elegoo PETG PRO @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo PETG PRO @Elegoo Giga.json" + }, + { + "name": "Elegoo PETG Translucent @0.2 nozzle", + "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PETG Translucent @0.2 nozzle.json" + }, + { + "name": "Elegoo PETG Translucent @EC", + "sub_path": "filament/EC/Elegoo PETG Translucent @EC.json" + }, + { + "name": "Elegoo PETG Translucent @ECC", + "sub_path": "filament/ECC/Elegoo PETG Translucent @ECC.json" + }, + { + "name": "Elegoo PETG Translucent @ECC2", + "sub_path": "filament/ECC2/Elegoo PETG Translucent @ECC2.json" + }, + { + "name": "Elegoo PETG Translucent @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PETG Translucent @EN2 Series.json" + }, + { + "name": "Elegoo PETG Translucent @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PETG Translucent @EN3 Series.json" + }, + { + "name": "Elegoo PETG Translucent @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PETG Translucent @EN4 Series.json" + }, + { + "name": "Elegoo PETG Translucent @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo PETG Translucent @Elegoo Giga.json" + }, + { + "name": "Elegoo PETG-CF @EC", + "sub_path": "filament/EC/Elegoo PETG-CF @EC.json" + }, + { + "name": "Elegoo PETG-CF @ECC", + "sub_path": "filament/ECC/Elegoo PETG-CF @ECC.json" + }, + { + "name": "Elegoo PETG-CF @ECC2", + "sub_path": "filament/ECC2/Elegoo PETG-CF @ECC2.json" + }, + { + "name": "Elegoo PETG-CF @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PETG-CF @EN2 Series.json" + }, + { + "name": "Elegoo PETG-CF @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PETG-CF @EN3 Series.json" + }, + { + "name": "Elegoo PETG-CF @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PETG-CF @EN4 Series.json" + }, + { + "name": "Elegoo PETG-CF @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo PETG-CF @Elegoo Giga.json" + }, + { + "name": "Elegoo PETG-GF @EC", + "sub_path": "filament/EC/Elegoo PETG-GF @EC.json" + }, + { + "name": "Elegoo PETG-GF @ECC", + "sub_path": "filament/ECC/Elegoo PETG-GF @ECC.json" + }, + { + "name": "Elegoo PETG-GF @ECC2", + "sub_path": "filament/ECC2/Elegoo PETG-GF @ECC2.json" + }, + { + "name": "Elegoo PETG-GF @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PETG-GF @EN2 Series.json" + }, + { + "name": "Elegoo PETG-GF @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PETG-GF @EN3 Series.json" + }, + { + "name": "Elegoo PETG-GF @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PETG-GF @EN4 Series.json" + }, + { + "name": "Elegoo PETG-GF @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo PETG-GF @Elegoo Giga.json" + }, + { + "name": "Elegoo Rapid PETG @0.2 nozzle", + "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo Rapid PETG @0.2 nozzle.json" + }, + { + "name": "Elegoo Rapid PETG @EC", + "sub_path": "filament/EC/Elegoo Rapid PETG @EC.json" + }, + { + "name": "Elegoo Rapid PETG @ECC", + "sub_path": "filament/ECC/Elegoo Rapid PETG @ECC.json" + }, + { + "name": "Elegoo Rapid PETG @ECC2", + "sub_path": "filament/ECC2/Elegoo Rapid PETG @ECC2.json" + }, + { + "name": "Elegoo Rapid PETG @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo Rapid PETG @EN2 Series.json" + }, + { + "name": "Elegoo Rapid PETG @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo Rapid PETG @EN3 Series.json" + }, + { + "name": "Elegoo Rapid PETG @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo Rapid PETG @EN4 Series.json" + }, + { + "name": "Elegoo Rapid PETG @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo Rapid PETG @Elegoo Giga.json" + }, { "name": "Generic PET @Elegoo Centauri", "sub_path": "filament/Generic/Generic PET @Elegoo Centauri.json" @@ -1925,16 +1077,416 @@ "sub_path": "filament/Generic/Generic PETG-CF @Elegoo Centauri.json" }, { - "name": "Generic PLA @Elegoo Centauri", - "sub_path": "filament/Generic/Generic PLA @Elegoo Centauri.json" + "name": "Elegoo PLA @0.2 nozzle", + "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA @0.2 nozzle.json" + }, + { + "name": "Elegoo PLA @EC", + "sub_path": "filament/EC/Elegoo PLA @EC.json" + }, + { + "name": "Elegoo PLA @ECC", + "sub_path": "filament/ECC/Elegoo PLA @ECC.json" + }, + { + "name": "Elegoo PLA @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA @ECC2.json" + }, + { + "name": "Elegoo PLA @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PLA @EN2 Series.json" + }, + { + "name": "Elegoo PLA @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PLA @EN3 Series.json" + }, + { + "name": "Elegoo PLA @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PLA @EN4 Series.json" + }, + { + "name": "Elegoo PLA @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo PLA @Elegoo Giga.json" + }, + { + "name": "Elegoo PLA Basic @0.2 nozzle", + "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA Basic @0.2 nozzle.json" + }, + { + "name": "Elegoo PLA Basic @EC", + "sub_path": "filament/EC/Elegoo PLA Basic @EC.json" + }, + { + "name": "Elegoo PLA Basic @ECC", + "sub_path": "filament/ECC/Elegoo PLA Basic @ECC.json" + }, + { + "name": "Elegoo PLA Basic @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA Basic @ECC2.json" + }, + { + "name": "Elegoo PLA Basic @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PLA Basic @EN2 Series.json" + }, + { + "name": "Elegoo PLA Basic @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PLA Basic @EN3 Series.json" + }, + { + "name": "Elegoo PLA Basic @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PLA Basic @EN4 Series.json" + }, + { + "name": "Elegoo PLA Basic @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo PLA Basic @Elegoo Giga.json" + }, + { + "name": "Elegoo PLA Galaxy @EC", + "sub_path": "filament/EC/Elegoo PLA Galaxy @EC.json" + }, + { + "name": "Elegoo PLA Galaxy @ECC", + "sub_path": "filament/ECC/Elegoo PLA Galaxy @ECC.json" + }, + { + "name": "Elegoo PLA Galaxy @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA Galaxy @ECC2.json" + }, + { + "name": "Elegoo PLA Galaxy @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PLA Galaxy @EN2 Series.json" + }, + { + "name": "Elegoo PLA Galaxy @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PLA Galaxy @EN3 Series.json" + }, + { + "name": "Elegoo PLA Galaxy @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PLA Galaxy @EN4 Series.json" + }, + { + "name": "Elegoo PLA Galaxy @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo PLA Galaxy @Elegoo Giga.json" + }, + { + "name": "Elegoo PLA Glow @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA Glow @ECC2.json" + }, + { + "name": "Elegoo PLA Marble @EC", + "sub_path": "filament/EC/Elegoo PLA Marble @EC.json" + }, + { + "name": "Elegoo PLA Marble @ECC", + "sub_path": "filament/ECC/Elegoo PLA Marble @ECC.json" + }, + { + "name": "Elegoo PLA Marble @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA Marble @ECC2.json" + }, + { + "name": "Elegoo PLA Marble @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PLA Marble @EN2 Series.json" + }, + { + "name": "Elegoo PLA Marble @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PLA Marble @EN3 Series.json" + }, + { + "name": "Elegoo PLA Marble @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PLA Marble @EN4 Series.json" + }, + { + "name": "Elegoo PLA Marble @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo PLA Marble @Elegoo Giga.json" + }, + { + "name": "Elegoo PLA Matte @0.2 nozzle", + "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA Matte @0.2 nozzle.json" + }, + { + "name": "Elegoo PLA Matte @EC", + "sub_path": "filament/EC/Elegoo PLA Matte @EC.json" + }, + { + "name": "Elegoo PLA Matte @ECC", + "sub_path": "filament/ECC/Elegoo PLA Matte @ECC.json" + }, + { + "name": "Elegoo PLA Matte @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA Matte @ECC2.json" + }, + { + "name": "Elegoo PLA Matte @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PLA Matte @EN2 Series.json" + }, + { + "name": "Elegoo PLA Matte @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PLA Matte @EN3 Series.json" + }, + { + "name": "Elegoo PLA Matte @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PLA Matte @EN4 Series.json" + }, + { + "name": "Elegoo PLA Matte @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo PLA Matte @Elegoo Giga.json" + }, + { + "name": "Elegoo PLA PRO @0.2 nozzle", + "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA PRO @0.2 nozzle.json" + }, + { + "name": "Elegoo PLA PRO @EC", + "sub_path": "filament/EC/Elegoo PLA PRO @EC.json" + }, + { + "name": "Elegoo PLA PRO @ECC", + "sub_path": "filament/ECC/Elegoo PLA PRO @ECC.json" + }, + { + "name": "Elegoo PLA PRO @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA PRO @ECC2.json" + }, + { + "name": "Elegoo PLA PRO @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PLA PRO @EN2 Series.json" + }, + { + "name": "Elegoo PLA PRO @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PLA PRO @EN3 Series.json" + }, + { + "name": "Elegoo PLA PRO @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PLA PRO @EN4 Series.json" + }, + { + "name": "Elegoo PLA Silk @0.2 nozzle", + "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA Silk @0.2 nozzle.json" + }, + { + "name": "Elegoo PLA Silk @EC", + "sub_path": "filament/EC/Elegoo PLA Silk @EC.json" + }, + { + "name": "Elegoo PLA Silk @ECC", + "sub_path": "filament/ECC/Elegoo PLA Silk @ECC.json" + }, + { + "name": "Elegoo PLA Silk @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA Silk @ECC2.json" + }, + { + "name": "Elegoo PLA Silk @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PLA Silk @EN2 Series.json" + }, + { + "name": "Elegoo PLA Silk @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PLA Silk @EN3 Series.json" + }, + { + "name": "Elegoo PLA Silk @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PLA Silk @EN4 Series.json" + }, + { + "name": "Elegoo PLA Sparkle @EC", + "sub_path": "filament/EC/Elegoo PLA Sparkle @EC.json" + }, + { + "name": "Elegoo PLA Sparkle @ECC", + "sub_path": "filament/ECC/Elegoo PLA Sparkle @ECC.json" + }, + { + "name": "Elegoo PLA Sparkle @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA Sparkle @ECC2.json" + }, + { + "name": "Elegoo PLA Sparkle @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PLA Sparkle @EN2 Series.json" + }, + { + "name": "Elegoo PLA Sparkle @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PLA Sparkle @EN3 Series.json" + }, + { + "name": "Elegoo PLA Sparkle @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PLA Sparkle @EN4 Series.json" + }, + { + "name": "Elegoo PLA Sparkle @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo PLA Sparkle @Elegoo Giga.json" + }, + { + "name": "Elegoo PLA Translucent2 @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA Translucent2 @ECC2.json" + }, + { + "name": "Elegoo PLA Wood @EC", + "sub_path": "filament/EC/Elegoo PLA Wood @EC.json" + }, + { + "name": "Elegoo PLA Wood @ECC", + "sub_path": "filament/ECC/Elegoo PLA Wood @ECC.json" + }, + { + "name": "Elegoo PLA Wood @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA Wood @ECC2.json" + }, + { + "name": "Elegoo PLA Wood @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PLA Wood @EN2 Series.json" + }, + { + "name": "Elegoo PLA Wood @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PLA Wood @EN3 Series.json" + }, + { + "name": "Elegoo PLA Wood @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PLA Wood @EN4 Series.json" + }, + { + "name": "Elegoo PLA Wood @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo PLA Wood @Elegoo Giga.json" + }, + { + "name": "Elegoo PLA+ @0.2 nozzle", + "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA+ @0.2 nozzle.json" + }, + { + "name": "Elegoo PLA+ @EC", + "sub_path": "filament/EC/Elegoo PLA+ @EC.json" + }, + { + "name": "Elegoo PLA+ @ECC", + "sub_path": "filament/ECC/Elegoo PLA+ @ECC.json" + }, + { + "name": "Elegoo PLA+ @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA+ @ECC2.json" + }, + { + "name": "Elegoo PLA+ @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PLA+ @EN2 Series.json" + }, + { + "name": "Elegoo PLA+ @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PLA+ @EN3 Series.json" + }, + { + "name": "Elegoo PLA+ @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PLA+ @EN4 Series.json" + }, + { + "name": "Elegoo PLA-CF @ECC", + "sub_path": "filament/ECC/Elegoo PLA-CF @ECC.json" + }, + { + "name": "Elegoo PLA-CF @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA-CF @ECC2.json" + }, + { + "name": "Elegoo PLA-CF @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo PLA-CF @EN2 Series.json" + }, + { + "name": "Elegoo PLA-CF @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo PLA-CF @EN3 Series.json" + }, + { + "name": "Elegoo PLA-CF @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo PLA-CF @EN4 Series.json" + }, + { + "name": "Elegoo Rapid PLA+ @0.2 nozzle", + "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo Rapid PLA+ @0.2 nozzle.json" + }, + { + "name": "Elegoo Rapid PLA+ @EC", + "sub_path": "filament/EC/Elegoo Rapid PLA+ @EC.json" + }, + { + "name": "Elegoo Rapid PLA+ @ECC", + "sub_path": "filament/ECC/Elegoo Rapid PLA+ @ECC.json" + }, + { + "name": "Elegoo Rapid PLA+ @ECC2", + "sub_path": "filament/ECC2/Elegoo Rapid PLA+ @ECC2.json" + }, + { + "name": "Elegoo Rapid PLA+ @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo Rapid PLA+ @EN2 Series.json" + }, + { + "name": "Elegoo Rapid PLA+ @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo Rapid PLA+ @EN3 Series.json" + }, + { + "name": "Elegoo Rapid PLA+ @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo Rapid PLA+ @EN4 Series.json" + }, + { + "name": "Elegoo Rapid PLA+ @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo Rapid PLA+ @Elegoo Giga.json" }, { "name": "Generic PLA @Elegoo", "sub_path": "filament/Generic/Generic PLA @Elegoo.json" }, + { + "name": "Generic PLA @Elegoo Centauri", + "sub_path": "filament/Generic/Generic PLA @Elegoo Centauri.json" + }, { "name": "Generic PLA Matte @Elegoo", "sub_path": "filament/Generic/Generic PLA Matte @Elegoo.json" + }, + { + "name": "Elegoo Rapid TPU 95A @EC", + "sub_path": "filament/EC/Elegoo Rapid TPU 95A @EC.json" + }, + { + "name": "Elegoo Rapid TPU 95A @ECC", + "sub_path": "filament/ECC/Elegoo Rapid TPU 95A @ECC.json" + }, + { + "name": "Elegoo Rapid TPU 95A @ECC2", + "sub_path": "filament/ECC2/Elegoo Rapid TPU 95A @ECC2.json" + }, + { + "name": "Elegoo Rapid TPU 95A @EN2 Series", + "sub_path": "filament/EN2SERIES/Elegoo Rapid TPU 95A @EN2 Series.json" + }, + { + "name": "Elegoo Rapid TPU 95A @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo Rapid TPU 95A @EN3 Series.json" + }, + { + "name": "Elegoo Rapid TPU 95A @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo Rapid TPU 95A @EN4 Series.json" + }, + { + "name": "Elegoo Rapid TPU 95A @Elegoo Giga", + "sub_path": "filament/EOSGIGA/Elegoo Rapid TPU 95A @Elegoo Giga.json" + }, + { + "name": "Elegoo TPU 95A @EC", + "sub_path": "filament/EC/Elegoo TPU 95A @EC.json" + }, + { + "name": "Elegoo TPU 95A @ECC", + "sub_path": "filament/ECC/Elegoo TPU 95A @ECC.json" + }, + { + "name": "Elegoo TPU 95A @ECC2", + "sub_path": "filament/ECC2/Elegoo TPU 95A @ECC2.json" + }, + { + "name": "Elegoo TPU 95A @EN3 Series", + "sub_path": "filament/EN3SERIES/Elegoo TPU 95A @EN3 Series.json" + }, + { + "name": "Elegoo TPU 95A @EN4 Series", + "sub_path": "filament/EN4SERIES/Elegoo TPU 95A @EN4 Series.json" } ], "machine_list": [ @@ -1942,33 +1494,49 @@ "name": "fdm_machine_common", "sub_path": "machine/fdm_machine_common.json" }, + { + "name": "fdm_elegoo_3dp_001_common", + "sub_path": "machine/fdm_elegoo_3dp_001_common.json" + }, { "name": "fdm_elegoo_common", "sub_path": "machine/fdm_elegoo_common.json" }, { - "name": "fdm_elegoo_3dp_001_common", - "sub_path": "machine/fdm_elegoo_3dp_001_common.json" + "name": "Elegoo Centauri 0.4 nozzle", + "sub_path": "machine/EC/Elegoo Centauri 0.4 nozzle.json" }, { "name": "Elegoo Centauri Carbon 0.4 nozzle", "sub_path": "machine/ECC/Elegoo Centauri Carbon 0.4 nozzle.json" }, { - "name": "Elegoo Centauri Carbon 0.2 nozzle", - "sub_path": "machine/ECC/Elegoo Centauri Carbon 0.2 nozzle.json" + "name": "Elegoo Centauri Carbon 2 0.4 nozzle", + "sub_path": "machine/ECC2/Elegoo Centauri Carbon 2 0.4 nozzle.json" }, { - "name": "Elegoo Centauri Carbon 0.6 nozzle", - "sub_path": "machine/ECC/Elegoo Centauri Carbon 0.6 nozzle.json" + "name": "Elegoo Neptune 4 0.4 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 0.4 nozzle.json" }, { - "name": "Elegoo Centauri Carbon 0.8 nozzle", - "sub_path": "machine/ECC/Elegoo Centauri Carbon 0.8 nozzle.json" + "name": "Elegoo OrangeStorm Giga 0.4 nozzle", + "sub_path": "machine/EOSGIGA/Elegoo OrangeStorm Giga 0.4 nozzle.json" }, { - "name": "Elegoo Centauri 0.4 nozzle", - "sub_path": "machine/EC/Elegoo Centauri 0.4 nozzle.json" + "name": "Elegoo Neptune 2 0.4 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 2 0.4 nozzle.json" + }, + { + "name": "Elegoo Neptune 2S 0.4 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 2S 0.4 nozzle.json" + }, + { + "name": "Elegoo Neptune 3 Pro 0.4 nozzle", + "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Pro 0.4 nozzle.json" + }, + { + "name": "Elegoo Neptune X 0.4 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune X 0.4 nozzle.json" }, { "name": "Elegoo Centauri 0.2 nozzle", @@ -1983,8 +1551,16 @@ "sub_path": "machine/EC/Elegoo Centauri 0.8 nozzle.json" }, { - "name": "Elegoo Centauri Carbon 2 0.4 nozzle", - "sub_path": "machine/ECC2/Elegoo Centauri Carbon 2 0.4 nozzle.json" + "name": "Elegoo Centauri Carbon 0.2 nozzle", + "sub_path": "machine/ECC/Elegoo Centauri Carbon 0.2 nozzle.json" + }, + { + "name": "Elegoo Centauri Carbon 0.6 nozzle", + "sub_path": "machine/ECC/Elegoo Centauri Carbon 0.6 nozzle.json" + }, + { + "name": "Elegoo Centauri Carbon 0.8 nozzle", + "sub_path": "machine/ECC/Elegoo Centauri Carbon 0.8 nozzle.json" }, { "name": "Elegoo Centauri Carbon 2 0.2 nozzle", @@ -1998,10 +1574,6 @@ "name": "Elegoo Centauri Carbon 2 0.8 nozzle", "sub_path": "machine/ECC2/Elegoo Centauri Carbon 2 0.8 nozzle.json" }, - { - "name": "Elegoo Neptune 4 0.4 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 0.4 nozzle.json" - }, { "name": "Elegoo Neptune 4 0.2 nozzle", "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 0.2 nozzle.json" @@ -2019,68 +1591,16 @@ "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 1.0 nozzle.json" }, { - "name": "Elegoo Neptune 4 Pro 0.4 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Pro 0.4 nozzle.json" - }, - { - "name": "Elegoo Neptune 4 Pro 0.2 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Pro 0.2 nozzle.json" - }, - { - "name": "Elegoo Neptune 4 Pro 0.6 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Pro 0.6 nozzle.json" - }, - { - "name": "Elegoo Neptune 4 Pro 0.8 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Pro 0.8 nozzle.json" - }, - { - "name": "Elegoo Neptune 4 Pro 1.0 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Pro 1.0 nozzle.json" + "name": "Elegoo Neptune 4 Max 0.4 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Max 0.4 nozzle.json" }, { "name": "Elegoo Neptune 4 Plus 0.4 nozzle", "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Plus 0.4 nozzle.json" }, { - "name": "Elegoo Neptune 4 Plus 0.2 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Plus 0.2 nozzle.json" - }, - { - "name": "Elegoo Neptune 4 Plus 0.6 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Plus 0.6 nozzle.json" - }, - { - "name": "Elegoo Neptune 4 Plus 0.8 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Plus 0.8 nozzle.json" - }, - { - "name": "Elegoo Neptune 4 Plus 1.0 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Plus 1.0 nozzle.json" - }, - { - "name": "Elegoo Neptune 4 Max 0.4 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Max 0.4 nozzle.json" - }, - { - "name": "Elegoo Neptune 4 Max 0.2 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Max 0.2 nozzle.json" - }, - { - "name": "Elegoo Neptune 4 Max 0.6 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Max 0.6 nozzle.json" - }, - { - "name": "Elegoo Neptune 4 Max 0.8 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Max 0.8 nozzle.json" - }, - { - "name": "Elegoo Neptune 4 Max 1.0 nozzle", - "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Max 1.0 nozzle.json" - }, - { - "name": "Elegoo OrangeStorm Giga 0.4 nozzle", - "sub_path": "machine/EOSGIGA/Elegoo OrangeStorm Giga 0.4 nozzle.json" + "name": "Elegoo Neptune 4 Pro 0.4 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Pro 0.4 nozzle.json" }, { "name": "Elegoo OrangeStorm Giga 0.6 nozzle", @@ -2095,8 +1615,40 @@ "sub_path": "machine/EOSGIGA/Elegoo OrangeStorm Giga 1.0 nozzle.json" }, { - "name": "Elegoo Neptune 3 Pro 0.4 nozzle", - "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Pro 0.4 nozzle.json" + "name": "Elegoo Neptune 0.4 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 0.4 nozzle.json" + }, + { + "name": "Elegoo Neptune 2 0.6 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 2 0.6 nozzle.json" + }, + { + "name": "Elegoo Neptune 2 0.8 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 2 0.8 nozzle.json" + }, + { + "name": "Elegoo Neptune 2D 0.4 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 2D 0.4 nozzle.json" + }, + { + "name": "Elegoo Neptune 3 0.4 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 3 0.4 nozzle.json" + }, + { + "name": "Elegoo Neptune 2S 0.6 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 2S 0.6 nozzle.json" + }, + { + "name": "Elegoo Neptune 2S 0.8 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 2S 0.8 nozzle.json" + }, + { + "name": "Elegoo Neptune 3 Max 0.4 nozzle", + "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Max 0.4 nozzle.json" + }, + { + "name": "Elegoo Neptune 3 Plus 0.4 nozzle", + "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Plus 0.4 nozzle.json" }, { "name": "Elegoo Neptune 3 Pro 0.2 nozzle", @@ -2115,28 +1667,84 @@ "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Pro 1.0 nozzle.json" }, { - "name": "Elegoo Neptune 3 Plus 0.4 nozzle", - "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Plus 0.4 nozzle.json" + "name": "Elegoo Neptune X 0.6 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune X 0.6 nozzle.json" }, { - "name": "Elegoo Neptune 3 Plus 0.2 nozzle", - "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Plus 0.2 nozzle.json" + "name": "Elegoo Neptune X 0.8 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune X 0.8 nozzle.json" }, { - "name": "Elegoo Neptune 3 Plus 0.6 nozzle", - "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Plus 0.6 nozzle.json" + "name": "Elegoo Neptune 4 Max 0.2 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Max 0.2 nozzle.json" }, { - "name": "Elegoo Neptune 3 Plus 0.8 nozzle", - "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Plus 0.8 nozzle.json" + "name": "Elegoo Neptune 4 Max 0.6 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Max 0.6 nozzle.json" }, { - "name": "Elegoo Neptune 3 Plus 1.0 nozzle", - "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Plus 1.0 nozzle.json" + "name": "Elegoo Neptune 4 Max 0.8 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Max 0.8 nozzle.json" }, { - "name": "Elegoo Neptune 3 Max 0.4 nozzle", - "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Max 0.4 nozzle.json" + "name": "Elegoo Neptune 4 Max 1.0 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Max 1.0 nozzle.json" + }, + { + "name": "Elegoo Neptune 4 Plus 0.2 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Plus 0.2 nozzle.json" + }, + { + "name": "Elegoo Neptune 4 Plus 0.6 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Plus 0.6 nozzle.json" + }, + { + "name": "Elegoo Neptune 4 Plus 0.8 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Plus 0.8 nozzle.json" + }, + { + "name": "Elegoo Neptune 4 Plus 1.0 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Plus 1.0 nozzle.json" + }, + { + "name": "Elegoo Neptune 4 Pro 0.2 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Pro 0.2 nozzle.json" + }, + { + "name": "Elegoo Neptune 4 Pro 0.6 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Pro 0.6 nozzle.json" + }, + { + "name": "Elegoo Neptune 4 Pro 0.8 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Pro 0.8 nozzle.json" + }, + { + "name": "Elegoo Neptune 4 Pro 1.0 nozzle", + "sub_path": "machine/EN4SERIES/Elegoo Neptune 4 Pro 1.0 nozzle.json" + }, + { + "name": "Elegoo Neptune 0.6 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 0.6 nozzle.json" + }, + { + "name": "Elegoo Neptune 0.8 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 0.8 nozzle.json" + }, + { + "name": "Elegoo Neptune 2D 0.6 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 2D 0.6 nozzle.json" + }, + { + "name": "Elegoo Neptune 2D 0.8 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 2D 0.8 nozzle.json" + }, + { + "name": "Elegoo Neptune 3 0.6 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 3 0.6 nozzle.json" + }, + { + "name": "Elegoo Neptune 3 0.8 nozzle", + "sub_path": "machine/EN2SERIES/Elegoo Neptune 3 0.8 nozzle.json" }, { "name": "Elegoo Neptune 3 Max 0.2 nozzle", @@ -2155,76 +1763,20 @@ "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Max 1.0 nozzle.json" }, { - "name": "Elegoo Neptune 2 0.4 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 2 0.4 nozzle.json" + "name": "Elegoo Neptune 3 Plus 0.2 nozzle", + "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Plus 0.2 nozzle.json" }, { - "name": "Elegoo Neptune 2 0.6 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 2 0.6 nozzle.json" + "name": "Elegoo Neptune 3 Plus 0.6 nozzle", + "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Plus 0.6 nozzle.json" }, { - "name": "Elegoo Neptune 2 0.8 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 2 0.8 nozzle.json" + "name": "Elegoo Neptune 3 Plus 0.8 nozzle", + "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Plus 0.8 nozzle.json" }, { - "name": "Elegoo Neptune 3 0.4 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 3 0.4 nozzle.json" - }, - { - "name": "Elegoo Neptune 3 0.6 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 3 0.6 nozzle.json" - }, - { - "name": "Elegoo Neptune 3 0.8 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 3 0.8 nozzle.json" - }, - { - "name": "Elegoo Neptune X 0.4 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune X 0.4 nozzle.json" - }, - { - "name": "Elegoo Neptune X 0.6 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune X 0.6 nozzle.json" - }, - { - "name": "Elegoo Neptune X 0.8 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune X 0.8 nozzle.json" - }, - { - "name": "Elegoo Neptune 2S 0.4 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 2S 0.4 nozzle.json" - }, - { - "name": "Elegoo Neptune 2S 0.6 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 2S 0.6 nozzle.json" - }, - { - "name": "Elegoo Neptune 2S 0.8 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 2S 0.8 nozzle.json" - }, - { - "name": "Elegoo Neptune 2D 0.4 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 2D 0.4 nozzle.json" - }, - { - "name": "Elegoo Neptune 2D 0.6 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 2D 0.6 nozzle.json" - }, - { - "name": "Elegoo Neptune 2D 0.8 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 2D 0.8 nozzle.json" - }, - { - "name": "Elegoo Neptune 0.4 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 0.4 nozzle.json" - }, - { - "name": "Elegoo Neptune 0.6 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 0.6 nozzle.json" - }, - { - "name": "Elegoo Neptune 0.8 nozzle", - "sub_path": "machine/EN2SERIES/Elegoo Neptune 0.8 nozzle.json" + "name": "Elegoo Neptune 3 Plus 1.0 nozzle", + "sub_path": "machine/EN3SERIES/Elegoo Neptune 3 Plus 1.0 nozzle.json" } ] } diff --git a/resources/profiles/Flashforge.json b/resources/profiles/Flashforge.json index d198488a09..6604fe6f54 100644 --- a/resources/profiles/Flashforge.json +++ b/resources/profiles/Flashforge.json @@ -9,10 +9,6 @@ "name": "Flashforge AD5X", "sub_path": "machine/Flashforge AD5X.json" }, - { - "name": "Flashforge Artemis", - "sub_path": "machine/Flashforge Artemis.json" - }, { "name": "Flashforge Adventurer 3 Series", "sub_path": "machine/Flashforge Adventurer 3 Series.json" @@ -29,6 +25,18 @@ "name": "Flashforge Adventurer 5M Pro", "sub_path": "machine/Flashforge Adventurer 5M Pro.json" }, + { + "name": "Flashforge Artemis", + "sub_path": "machine/Flashforge Artemis.json" + }, + { + "name": "Flashforge Creator 5", + "sub_path": "machine/Flashforge Creator 5.json" + }, + { + "name": "Flashforge Creator 5 Pro", + "sub_path": "machine/Flashforge Creator 5 Pro.json" + }, { "name": "Flashforge Guider 2s", "sub_path": "machine/Flashforge Guider 2s.json" @@ -44,14 +52,6 @@ { "name": "Flashforge Guider4 Pro", "sub_path": "machine/Flashforge Guider4 Pro.json" - }, - { - "name": "Flashforge Creator 5", - "sub_path":"machine/Flashforge Creator 5.json" - }, - { - "name": "Flashforge Creator 5 Pro", - "sub_path":"machine/Flashforge Creator 5 Pro.json" } ], "process_list": [ @@ -171,6 +171,10 @@ "name": "0.12mm Fine @Flashforge AD5M Pro 0.4 Nozzle", "sub_path": "process/0.12mm Fine @Flashforge AD5M Pro 0.4 Nozzle.json" }, + { + "name": "0.12mm Standard @FF C5", + "sub_path": "process/0.12mm Standard @FF C5.json" + }, { "name": "0.12mm Standard @Flashforge AD5M Pro 0.25 Nozzle", "sub_path": "process/0.12mm Standard @Flashforge AD5M Pro 0.25 Nozzle.json" @@ -187,10 +191,18 @@ "name": "0.16mm Standard @FF G4P", "sub_path": "process/0.16mm Standard @FF G4P.json" }, + { + "name": "0.18mm Standard @FF C5 0.6 nozzle", + "sub_path": "process/0.18mm Standard @FF C5 0.6 nozzle.json" + }, { "name": "0.20mm Standard @FF AD5X", "sub_path": "process/0.20mm Standard @FF AD5X.json" }, + { + "name": "0.20mm Standard @FF C5", + "sub_path": "process/0.20mm Standard @FF C5.json" + }, { "name": "0.20mm Standard @FF G4", "sub_path": "process/0.20mm Standard @FF G4.json" @@ -207,6 +219,10 @@ "name": "0.24mm Draft @Flashforge AD5M Pro 0.4 Nozzle", "sub_path": "process/0.24mm Draft @Flashforge AD5M Pro 0.4 Nozzle.json" }, + { + "name": "0.24mm Standard @FF C5", + "sub_path": "process/0.24mm Standard @FF C5.json" + }, { "name": "0.24mm Standard @FF G4", "sub_path": "process/0.24mm Standard @FF G4.json" @@ -215,6 +231,26 @@ "name": "0.24mm Standard @FF G4P", "sub_path": "process/0.24mm Standard @FF G4P.json" }, + { + "name": "0.30mm Standard @FF C5 0.6 nozzle", + "sub_path": "process/0.30mm Standard @FF C5 0.6 nozzle.json" + }, + { + "name": "0.32mm Standard @FF C5 0.8 nozzle", + "sub_path": "process/0.32mm Standard @FF C5 0.8 nozzle.json" + }, + { + "name": "0.42mm Standard @FF C5 0.6 nozzle", + "sub_path": "process/0.42mm Standard @FF C5 0.6 nozzle.json" + }, + { + "name": "0.48mm Standard @FF C5 0.8 nozzle", + "sub_path": "process/0.48mm Standard @FF C5 0.8 nozzle.json" + }, + { + "name": "0.4mm Standard @FF C5 0.8 nozzle", + "sub_path": "process/0.4mm Standard @FF C5 0.8 nozzle.json" + }, { "name": "0.12mm Fine @Flashforge G3U 0.4 Nozzle", "sub_path": "process/0.12mm Fine @Flashforge G3U 0.4 Nozzle.json" @@ -482,42 +518,6 @@ { "name": "0.56mm Draft @FF AD5X 0.8 nozzle", "sub_path": "process/0.56mm Draft @FF AD5X 0.8 nozzle.json" - }, - { - "name": "0.12mm Standard @FF C5", - "sub_path": "process/0.12mm Standard @FF C5.json" - }, - { - "name": "0.20mm Standard @FF C5", - "sub_path": "process/0.20mm Standard @FF C5.json" - }, - { - "name": "0.24mm Standard @FF C5", - "sub_path": "process/0.24mm Standard @FF C5.json" - }, - { - "name": "0.18mm Standard @FF C5 0.6 nozzle", - "sub_path": "process/0.18mm Standard @FF C5 0.6 nozzle.json" - }, - { - "name": "0.30mm Standard @FF C5 0.6 nozzle", - "sub_path": "process/0.30mm Standard @FF C5 0.6 nozzle.json" - }, - { - "name": "0.42mm Standard @FF C5 0.6 nozzle", - "sub_path": "process/0.42mm Standard @FF C5 0.6 nozzle.json" - }, - { - "name": "0.32mm Standard @FF C5 0.8 nozzle", - "sub_path": "process/0.32mm Standard @FF C5 0.8 nozzle.json" - }, - { - "name": "0.48mm Standard @FF C5 0.8 nozzle", - "sub_path": "process/0.48mm Standard @FF C5 0.8 nozzle.json" - }, - { - "name": "0.4mm Standard @FF C5 0.8 nozzle", - "sub_path": "process/0.4mm Standard @FF C5 0.8 nozzle.json" } ], "filament_list": [ @@ -569,6 +569,10 @@ "name": "Flashforge PETG", "sub_path": "filament/Flashforge/Flashforge PETG @FF AD3.json" }, + { + "name": "Generic PETG @Flashforge Artemis", + "sub_path": "filament/Flashforge Generic PETG @Flashforge Artemis.json" + }, { "name": "SUNLU PETG @base", "sub_path": "filament/SUNLU/SUNLU PETG @base.json" @@ -2497,302 +2501,302 @@ "name": "Flashforge ABS Basic @FF C5", "sub_path": "filament/Flashforge ABS Basic @FF C5.json" }, - { - "name": "Flashforge ABS-GF @FF C5", - "sub_path": "filament/Flashforge ABS-GF @FF C5.json" - }, - { - "name": "Flashforge ASA Basic @FF C5", - "sub_path": "filament/Flashforge ASA Basic @FF C5.json" - }, - { - "name": "Flashforge ASA-CF @FF C5", - "sub_path": "filament/Flashforge ASA-CF @FF C5.json" - }, - { - "name": "Flashforge ASA-GF @FF C5", - "sub_path": "filament/Flashforge ASA-GF @FF C5.json" - }, - { - "name": "Flashforge HIPS @FF C5", - "sub_path": "filament/Flashforge HIPS @FF C5.json" - }, - { - "name": "Flashforge HS PETG @FF C5", - "sub_path": "filament/Flashforge HS PETG @FF C5.json" - }, - { - "name": "Flashforge HS PLA @FF C5", - "sub_path": "filament/Flashforge HS PLA @FF C5.json" - }, - { - "name": "Flashforge PA-CF @FF C5", - "sub_path": "filament/Flashforge PA-CF @FF C5.json" - }, - { - "name": "Flashforge PAHT-CF @FF C5", - "sub_path": "filament/Flashforge PAHT-CF @FF C5.json" - }, - { - "name": "Flashforge PET-CF @FF C5", - "sub_path": "filament/Flashforge PET-CF @FF C5.json" - }, - { - "name": "Flashforge PETG Pro @FF C5", - "sub_path": "filament/Flashforge PETG Pro @FF C5.json" - }, - { - "name": "Flashforge PETG Transparent @FF C5", - "sub_path": "filament/Flashforge PETG Transparent @FF C5.json" - }, - { - "name": "Flashforge PETG-CF @FF C5", - "sub_path": "filament/Flashforge PETG-CF @FF C5.json" - }, - { - "name": "Flashforge PLA Matte @FF C5", - "sub_path": "filament/Flashforge PLA Matte @FF C5.json" - }, - { - "name": "Flashforge PLA Metal @FF C5", - "sub_path": "filament/Flashforge PLA Metal @FF C5.json" - }, - { - "name": "Flashforge PLA Pro @FF C5", - "sub_path": "filament/Flashforge PLA Pro @FF C5.json" - }, - { - "name": "Flashforge PLA Basic @FF C5", - "sub_path": "filament/Flashforge PLA Basic @FF C5.json" - }, - { - "name": "Flashforge PLA Color Change @FF C5", - "sub_path": "filament/Flashforge PLA Color Change @FF C5.json" - }, - { - "name": "Flashforge PLA Galaxy @FF C5", - "sub_path": "filament/Flashforge PLA Galaxy @FF C5.json" - }, - { - "name": "Flashforge PLA Luminous @FF C5", - "sub_path": "filament/Flashforge PLA Luminous @FF C5.json" - }, - { - "name": "Flashforge PLA Silk @FF C5", - "sub_path": "filament/Flashforge PLA Silk @FF C5.json" - }, - { - "name": "Flashforge PLA-CF @FF C5", - "sub_path": "filament/Flashforge PLA-CF @FF C5.json" - }, - { - "name": "Flashforge PPA-CF @FF C5", - "sub_path": "filament/Flashforge PPA-CF @FF C5.json" - }, - { - "name": "Flashforge PPS-CF @FF C5", - "sub_path": "filament/Flashforge PPS-CF @FF C5.json" - }, - { - "name": "Flashforge PVA @FF C5", - "sub_path": "filament/Flashforge PVA @FF C5.json" - }, - { - "name": "Flashforge TPU-64D @FF C5", - "sub_path": "filament/Flashforge TPU-64D @FF C5.json" - }, - { - "name": "Flashforge TPU-90A @FF C5", - "sub_path": "filament/Flashforge TPU-90A @FF C5.json" - }, - { - "name": "Flashforge TPU-95A @FF C5", - "sub_path": "filament/Flashforge TPU-95A @FF C5.json" - }, - { - "name": "FusRock PAHT-CF @FF C5", - "sub_path": "filament/FusRock PAHT-CF @FF C5.json" - }, - { - "name": "FusRock S-Multi @FF C5", - "sub_path": "filament/FusRock S-Multi @FF C5.json" - }, - { - "name": "FusRock S-PAHT @FF C5", - "sub_path": "filament/FusRock S-PAHT @FF C5.json" - }, - { - "name": "Generic BVOH @FF C5", - "sub_path": "filament/Generic BVOH @FF C5.json" - }, - { - "name": "Generic PLA @FF C5", - "sub_path": "filament/Generic PLA @FF C5.json" - }, - { - "name": "Generic PLA Silk @FF C5", - "sub_path": "filament/Generic PLA Silk @FF C5.json" - }, - { - "name": "Generic TPU-64D @FF C5", - "sub_path": "filament/Generic TPU-64D @FF C5.json" - }, - { - "name": "Generic TPU-90A @FF C5", - "sub_path": "filament/Generic TPU-90A @FF C5.json" - }, - { - "name": "Generic TPU-95A @FF C5", - "sub_path": "filament/Generic TPU-95A @FF C5.json" - }, { "name": "Flashforge ABS Basic @FF C5P", "sub_path": "filament/Flashforge ABS Basic @FF C5P.json" }, + { + "name": "Flashforge ABS-GF @FF C5", + "sub_path": "filament/Flashforge ABS-GF @FF C5.json" + }, { "name": "Flashforge ABS-GF @FF C5P", "sub_path": "filament/Flashforge ABS-GF @FF C5P.json" }, + { + "name": "Flashforge ASA Basic @FF C5", + "sub_path": "filament/Flashforge ASA Basic @FF C5.json" + }, { "name": "Flashforge ASA Basic @FF C5P", "sub_path": "filament/Flashforge ASA Basic @FF C5P.json" }, + { + "name": "Flashforge ASA-CF @FF C5", + "sub_path": "filament/Flashforge ASA-CF @FF C5.json" + }, { "name": "Flashforge ASA-CF @FF C5P", "sub_path": "filament/Flashforge ASA-CF @FF C5P.json" }, + { + "name": "Flashforge ASA-GF @FF C5", + "sub_path": "filament/Flashforge ASA-GF @FF C5.json" + }, { "name": "Flashforge ASA-GF @FF C5P", "sub_path": "filament/Flashforge ASA-GF @FF C5P.json" }, + { + "name": "Flashforge HIPS @FF C5", + "sub_path": "filament/Flashforge HIPS @FF C5.json" + }, { "name": "Flashforge HIPS @FF C5P", "sub_path": "filament/Flashforge HIPS @FF C5P.json" }, + { + "name": "Flashforge HS PETG @FF C5", + "sub_path": "filament/Flashforge HS PETG @FF C5.json" + }, { "name": "Flashforge HS PETG @FF C5P", "sub_path": "filament/Flashforge HS PETG @FF C5P.json" }, + { + "name": "Flashforge HS PLA @FF C5", + "sub_path": "filament/Flashforge HS PLA @FF C5.json" + }, { "name": "Flashforge HS PLA @FF C5P", "sub_path": "filament/Flashforge HS PLA @FF C5P.json" }, + { + "name": "Flashforge PA-CF @FF C5", + "sub_path": "filament/Flashforge PA-CF @FF C5.json" + }, { "name": "Flashforge PA-CF @FF C5P", "sub_path": "filament/Flashforge PA-CF @FF C5P.json" }, + { + "name": "Flashforge PAHT-CF @FF C5", + "sub_path": "filament/Flashforge PAHT-CF @FF C5.json" + }, { "name": "Flashforge PAHT-CF @FF C5P", "sub_path": "filament/Flashforge PAHT-CF @FF C5P.json" }, + { + "name": "Flashforge PET-CF @FF C5", + "sub_path": "filament/Flashforge PET-CF @FF C5.json" + }, { "name": "Flashforge PET-CF @FF C5P", "sub_path": "filament/Flashforge PET-CF @FF C5P.json" }, + { + "name": "Flashforge PETG Pro @FF C5", + "sub_path": "filament/Flashforge PETG Pro @FF C5.json" + }, { "name": "Flashforge PETG Pro @FF C5P", "sub_path": "filament/Flashforge PETG Pro @FF C5P.json" }, + { + "name": "Flashforge PETG Transparent @FF C5", + "sub_path": "filament/Flashforge PETG Transparent @FF C5.json" + }, { "name": "Flashforge PETG Transparent @FF C5P", "sub_path": "filament/Flashforge PETG Transparent @FF C5P.json" }, + { + "name": "Flashforge PETG-CF @FF C5", + "sub_path": "filament/Flashforge PETG-CF @FF C5.json" + }, { "name": "Flashforge PETG-CF @FF C5P", "sub_path": "filament/Flashforge PETG-CF @FF C5P.json" }, + { + "name": "Flashforge PLA Matte @FF C5", + "sub_path": "filament/Flashforge PLA Matte @FF C5.json" + }, { "name": "Flashforge PLA Matte @FF C5P", "sub_path": "filament/Flashforge PLA Matte @FF C5P.json" }, + { + "name": "Flashforge PLA Metal @FF C5", + "sub_path": "filament/Flashforge PLA Metal @FF C5.json" + }, { "name": "Flashforge PLA Metal @FF C5P", "sub_path": "filament/Flashforge PLA Metal @FF C5P.json" }, + { + "name": "Flashforge PLA Pro @FF C5", + "sub_path": "filament/Flashforge PLA Pro @FF C5.json" + }, { "name": "Flashforge PLA Pro @FF C5P", "sub_path": "filament/Flashforge PLA Pro @FF C5P.json" }, + { + "name": "Flashforge PLA Basic @FF C5", + "sub_path": "filament/Flashforge PLA Basic @FF C5.json" + }, { "name": "Flashforge PLA Basic @FF C5P", "sub_path": "filament/Flashforge PLA Basic @FF C5P.json" }, + { + "name": "Flashforge PLA Color Change @FF C5", + "sub_path": "filament/Flashforge PLA Color Change @FF C5.json" + }, { "name": "Flashforge PLA Color Change @FF C5P", "sub_path": "filament/Flashforge PLA Color Change @FF C5P.json" }, + { + "name": "Flashforge PLA Galaxy @FF C5", + "sub_path": "filament/Flashforge PLA Galaxy @FF C5.json" + }, { "name": "Flashforge PLA Galaxy @FF C5P", "sub_path": "filament/Flashforge PLA Galaxy @FF C5P.json" }, + { + "name": "Flashforge PLA Luminous @FF C5", + "sub_path": "filament/Flashforge PLA Luminous @FF C5.json" + }, { "name": "Flashforge PLA Luminous @FF C5P", "sub_path": "filament/Flashforge PLA Luminous @FF C5P.json" }, + { + "name": "Flashforge PLA Silk @FF C5", + "sub_path": "filament/Flashforge PLA Silk @FF C5.json" + }, { "name": "Flashforge PLA Silk @FF C5P", "sub_path": "filament/Flashforge PLA Silk @FF C5P.json" }, + { + "name": "Flashforge PLA-CF @FF C5", + "sub_path": "filament/Flashforge PLA-CF @FF C5.json" + }, { "name": "Flashforge PLA-CF @FF C5P", "sub_path": "filament/Flashforge PLA-CF @FF C5P.json" }, + { + "name": "Flashforge PPA-CF @FF C5", + "sub_path": "filament/Flashforge PPA-CF @FF C5.json" + }, { "name": "Flashforge PPA-CF @FF C5P", "sub_path": "filament/Flashforge PPA-CF @FF C5P.json" }, + { + "name": "Flashforge PPS-CF @FF C5", + "sub_path": "filament/Flashforge PPS-CF @FF C5.json" + }, { "name": "Flashforge PPS-CF @FF C5P", "sub_path": "filament/Flashforge PPS-CF @FF C5P.json" }, + { + "name": "Flashforge PVA @FF C5", + "sub_path": "filament/Flashforge PVA @FF C5.json" + }, { "name": "Flashforge PVA @FF C5P", "sub_path": "filament/Flashforge PVA @FF C5P.json" }, + { + "name": "Flashforge TPU-64D @FF C5", + "sub_path": "filament/Flashforge TPU-64D @FF C5.json" + }, { "name": "Flashforge TPU-64D @FF C5P", "sub_path": "filament/Flashforge TPU-64D @FF C5P.json" }, + { + "name": "Flashforge TPU-90A @FF C5", + "sub_path": "filament/Flashforge TPU-90A @FF C5.json" + }, { "name": "Flashforge TPU-90A @FF C5P", "sub_path": "filament/Flashforge TPU-90A @FF C5P.json" }, + { + "name": "Flashforge TPU-95A @FF C5", + "sub_path": "filament/Flashforge TPU-95A @FF C5.json" + }, { "name": "Flashforge TPU-95A @FF C5P", "sub_path": "filament/Flashforge TPU-95A @FF C5P.json" }, + { + "name": "FusRock PAHT-CF @FF C5", + "sub_path": "filament/FusRock PAHT-CF @FF C5.json" + }, { "name": "FusRock PAHT-CF @FF C5P", "sub_path": "filament/FusRock PAHT-CF @FF C5P.json" }, + { + "name": "FusRock S-Multi @FF C5", + "sub_path": "filament/FusRock S-Multi @FF C5.json" + }, { "name": "FusRock S-Multi @FF C5P", "sub_path": "filament/FusRock S-Multi @FF C5P.json" }, + { + "name": "FusRock S-PAHT @FF C5", + "sub_path": "filament/FusRock S-PAHT @FF C5.json" + }, { "name": "FusRock S-PAHT @FF C5P", "sub_path": "filament/FusRock S-PAHT @FF C5P.json" }, + { + "name": "Generic BVOH @FF C5", + "sub_path": "filament/Generic BVOH @FF C5.json" + }, { "name": "Generic BVOH @FF C5P", "sub_path": "filament/Generic BVOH @FF C5P.json" }, + { + "name": "Generic PLA @FF C5", + "sub_path": "filament/Generic PLA @FF C5.json" + }, { "name": "Generic PLA @FF C5P", "sub_path": "filament/Generic PLA @FF C5P.json" }, + { + "name": "Generic PLA Silk @FF C5", + "sub_path": "filament/Generic PLA Silk @FF C5.json" + }, { "name": "Generic PLA Silk @FF C5P", "sub_path": "filament/Generic PLA Silk @FF C5P.json" }, + { + "name": "Generic TPU-64D @FF C5", + "sub_path": "filament/Generic TPU-64D @FF C5.json" + }, { "name": "Generic TPU-64D @FF C5P", "sub_path": "filament/Generic TPU-64D @FF C5P.json" }, + { + "name": "Generic TPU-90A @FF C5", + "sub_path": "filament/Generic TPU-90A @FF C5.json" + }, { "name": "Generic TPU-90A @FF C5P", "sub_path": "filament/Generic TPU-90A @FF C5P.json" }, + { + "name": "Generic TPU-95A @FF C5", + "sub_path": "filament/Generic TPU-95A @FF C5.json" + }, { "name": "Generic TPU-95A @FF C5P", "sub_path": "filament/Generic TPU-95A @FF C5P.json" @@ -2923,6 +2927,30 @@ "name": "Flashforge AD5X 0.4 nozzle", "sub_path": "machine/Flashforge AD5X 0.4 nozzle.json" }, + { + "name": "Flashforge Creator 5 0.4 nozzle", + "sub_path": "machine/Flashforge Creator 5 0.4 nozzle.json" + }, + { + "name": "Flashforge Creator 5 0.6 nozzle", + "sub_path": "machine/Flashforge Creator 5 0.6 nozzle.json" + }, + { + "name": "Flashforge Creator 5 0.8 nozzle", + "sub_path": "machine/Flashforge Creator 5 0.8 nozzle.json" + }, + { + "name": "Flashforge Creator 5 Pro 0.4 nozzle", + "sub_path": "machine/Flashforge Creator 5 Pro 0.4 nozzle.json" + }, + { + "name": "Flashforge Creator 5 Pro 0.6 nozzle", + "sub_path": "machine/Flashforge Creator 5 Pro 0.6 nozzle.json" + }, + { + "name": "Flashforge Creator 5 Pro 0.8 nozzle", + "sub_path": "machine/Flashforge Creator 5 Pro 0.8 nozzle.json" + }, { "name": "Flashforge Guider4 0.4 nozzle", "sub_path": "machine/Flashforge Guider4 0.4 nozzle.json" @@ -2970,30 +2998,6 @@ { "name": "Flashforge Guider4 Pro 0.8 HF nozzle", "sub_path": "machine/Flashforge Guider4 Pro 0.8 HF nozzle.json" - }, - { - "name": "Flashforge Creator 5 0.4 nozzle", - "sub_path": "machine/Flashforge Creator 5 0.4 nozzle.json" - }, - { - "name": "Flashforge Creator 5 0.6 nozzle", - "sub_path": "machine/Flashforge Creator 5 0.6 nozzle.json" - }, - { - "name": "Flashforge Creator 5 0.8 nozzle", - "sub_path": "machine/Flashforge Creator 5 0.8 nozzle.json" - }, - { - "name": "Flashforge Creator 5 Pro 0.4 nozzle", - "sub_path": "machine/Flashforge Creator 5 Pro 0.4 nozzle.json" - }, - { - "name": "Flashforge Creator 5 Pro 0.6 nozzle", - "sub_path": "machine/Flashforge Creator 5 Pro 0.6 nozzle.json" - }, - { - "name": "Flashforge Creator 5 Pro 0.8 nozzle", - "sub_path": "machine/Flashforge Creator 5 Pro 0.8 nozzle.json" } ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json index c968d061d0..5e8a02a397 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge ABS Basic @FF C5", + "inherits": "Generic ABS @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -31,17 +36,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "110" ], "hot_plate_temp_initial_layer": [ "110" ], - "inherits": "Generic ABS @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge ABS Basic @FF C5", "nozzle_temperature": [ "270" ], @@ -65,6 +65,5 @@ ], "textured_plate_temp_initial_layer": [ "110" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json index 575741dfc7..5702d2d915 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge ABS Basic @FF C5P", + "inherits": "Generic ABS @System", + "from": "system", + "instantiation": "true", "activate_chamber_temp_control": [ "1" ], @@ -37,17 +42,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "110" ], "hot_plate_temp_initial_layer": [ "110" ], - "inherits": "Generic ABS @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge ABS Basic @FF C5P", "nozzle_temperature": [ "270" ], @@ -71,6 +71,5 @@ ], "textured_plate_temp_initial_layer": [ "110" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json index 3d1230c898..96d5d067d4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge ABS-GF @FF C5", + "inherits": "Generic ABS @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -37,17 +42,12 @@ "filament_type": [ "ABS-GF" ], - "from": "system", "hot_plate_temp": [ "110" ], "hot_plate_temp_initial_layer": [ "110" ], - "inherits": "Generic ABS @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge ABS-GF @FF C5", "nozzle_temperature": [ "270" ], @@ -71,6 +71,5 @@ ], "textured_plate_temp_initial_layer": [ "110" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json index f52fcfc6bd..822e345435 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge ABS-GF @FF C5P", + "inherits": "Generic ABS @System", + "from": "system", + "instantiation": "true", "activate_chamber_temp_control": [ "1" ], @@ -43,17 +48,12 @@ "filament_type": [ "ABS-GF" ], - "from": "system", "hot_plate_temp": [ "110" ], "hot_plate_temp_initial_layer": [ "110" ], - "inherits": "Generic ABS @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge ABS-GF @FF C5P", "nozzle_temperature": [ "270" ], @@ -77,6 +77,5 @@ ], "textured_plate_temp_initial_layer": [ "110" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json index f026b053e3..393132a800 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge ASA Basic @FF C5", + "inherits": "Generic ABS @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -34,17 +39,12 @@ "filament_type": [ "ASA" ], - "from": "system", "hot_plate_temp": [ "110" ], "hot_plate_temp_initial_layer": [ "110" ], - "inherits": "Generic ABS @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge ASA Basic @FF C5", "nozzle_temperature": [ "270" ], @@ -68,6 +68,5 @@ ], "textured_plate_temp_initial_layer": [ "110" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json index c1bdeb2407..f706b524e7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge ASA Basic @FF C5P", + "inherits": "Generic ABS @System", + "from": "system", + "instantiation": "true", "activate_chamber_temp_control": [ "1" ], @@ -40,17 +45,12 @@ "filament_type": [ "ASA" ], - "from": "system", "hot_plate_temp": [ "110" ], "hot_plate_temp_initial_layer": [ "110" ], - "inherits": "Generic ABS @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge ASA Basic @FF C5P", "nozzle_temperature": [ "270" ], @@ -74,6 +74,5 @@ ], "textured_plate_temp_initial_layer": [ "110" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json index 91cb1bb3ec..71bc7aa427 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge ASA-CF @FF C5", + "inherits": "Generic ABS @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -37,17 +42,12 @@ "filament_type": [ "ASA-CF" ], - "from": "system", "hot_plate_temp": [ "110" ], "hot_plate_temp_initial_layer": [ "110" ], - "inherits": "Generic ABS @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge ASA-CF @FF C5", "nozzle_temperature": [ "270" ], @@ -71,6 +71,5 @@ ], "textured_plate_temp_initial_layer": [ "110" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json index 786ae041e4..e5f84a43d5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge ASA-CF @FF C5P", + "inherits": "Generic ABS @System", + "from": "system", + "instantiation": "true", "activate_chamber_temp_control": [ "1" ], @@ -43,17 +48,12 @@ "filament_type": [ "ASA-CF" ], - "from": "system", "hot_plate_temp": [ "110" ], "hot_plate_temp_initial_layer": [ "110" ], - "inherits": "Generic ABS @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge ASA-CF @FF C5P", "nozzle_temperature": [ "270" ], @@ -77,6 +77,5 @@ ], "textured_plate_temp_initial_layer": [ "110" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json index 348b1e29bd..4f1df3e3c3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge ASA-GF @FF C5", + "inherits": "Generic ABS @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -37,17 +42,12 @@ "filament_type": [ "ASA-GF" ], - "from": "system", "hot_plate_temp": [ "110" ], "hot_plate_temp_initial_layer": [ "110" ], - "inherits": "Generic ABS @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge ASA-GF @FF C5", "nozzle_temperature": [ "270" ], @@ -71,6 +71,5 @@ ], "textured_plate_temp_initial_layer": [ "110" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json index 02a0c5a05a..6cdd349d1a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge ASA-GF @FF C5P", + "inherits": "Generic ABS @System", + "from": "system", + "instantiation": "true", "activate_chamber_temp_control": [ "1" ], @@ -43,17 +48,12 @@ "filament_type": [ "ASA-GF" ], - "from": "system", "hot_plate_temp": [ "110" ], "hot_plate_temp_initial_layer": [ "110" ], - "inherits": "Generic ABS @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge ASA-GF @FF C5P", "nozzle_temperature": [ "270" ], @@ -77,6 +77,5 @@ ], "textured_plate_temp_initial_layer": [ "110" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json index cb1bf8aa70..3120b0e017 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge HIPS @FF C5", + "inherits": "Generic HIPS @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -34,17 +39,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "110" ], "hot_plate_temp_initial_layer": [ "110" ], - "inherits": "Generic HIPS @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge HIPS @FF C5", "nozzle_temperature": [ "270" ], @@ -68,6 +68,5 @@ ], "textured_plate_temp_initial_layer": [ "110" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json index df9269f306..78224dd1f6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge HIPS @FF C5P", + "inherits": "Generic HIPS @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 Pro 0.4 nozzle", "Flashforge Creator 5 Pro 0.6 nozzle", @@ -34,17 +39,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "110" ], "hot_plate_temp_initial_layer": [ "110" ], - "inherits": "Generic HIPS @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge HIPS @FF C5P", "nozzle_temperature": [ "270" ], @@ -68,6 +68,5 @@ ], "textured_plate_temp_initial_layer": [ "110" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json index 45183ef892..9080d0185d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge HS PETG @FF C5", + "inherits": "Generic PETG HF @System", + "from": "system", + "instantiation": "true", "close_fan_the_first_x_layers": [ "2" ], @@ -49,17 +54,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "85" ], "hot_plate_temp_initial_layer": [ "85" ], - "inherits": "Generic PETG HF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge HS PETG @FF C5", "nozzle_temperature": [ "235" ], @@ -89,6 +89,5 @@ ], "textured_plate_temp_initial_layer": [ "85" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json index ccb435580b..de8a43145a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge HS PETG @FF C5P", + "inherits": "Generic PETG HF @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -52,17 +57,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "85" ], "hot_plate_temp_initial_layer": [ "85" ], - "inherits": "Generic PETG HF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge HS PETG @FF C5P", "nozzle_temperature": [ "235" ], @@ -92,6 +92,5 @@ ], "textured_plate_temp_initial_layer": [ "85" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json index c0f3d4b45f..5f69bbc557 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge HS PLA @FF C5", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -43,17 +48,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "65" ], "hot_plate_temp_initial_layer": [ "65" ], - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge HS PLA @FF C5", "nozzle_temperature": [ "210" ], @@ -77,6 +77,5 @@ ], "textured_plate_temp_initial_layer": [ "65" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json index 7d10c20e3d..a91076bb1f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge HS PLA @FF C5P", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -46,11 +51,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge HS PLA @FF C5P", "nozzle_temperature": [ "210" ], @@ -68,6 +68,5 @@ ], "supertack_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json index 3450226a3a..c58ad5586e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PA-CF @FF C5", + "inherits": "Generic PA-CF @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -19,11 +24,6 @@ "filament_start_gcode": [ "; filament start gcode\n" ], - "from": "system", - "inherits": "Generic PA-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PA-CF @FF C5", "nozzle_temperature": [ "290" ], @@ -41,6 +41,5 @@ ], "textured_cool_plate_temp_initial_layer": [ "0" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json index 81731d010a..65f0cac2a8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PA-CF @FF C5P", + "inherits": "Generic PA-CF @System", + "from": "system", + "instantiation": "true", "activate_chamber_temp_control": [ "1" ], @@ -28,11 +33,6 @@ "filament_start_gcode": [ "; filament start gcode\n" ], - "from": "system", - "inherits": "Generic PA-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PA-CF @FF C5P", "nozzle_temperature": [ "290" ], @@ -50,6 +50,5 @@ ], "textured_cool_plate_temp_initial_layer": [ "0" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json index 57d4154a97..7d02bfecb3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PAHT-CF @FF C5", + "inherits": "Generic PA-CF @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -43,17 +48,12 @@ "filament_type": [ "PAHT-CF" ], - "from": "system", "hot_plate_temp": [ "80" ], "hot_plate_temp_initial_layer": [ "80" ], - "inherits": "Generic PA-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PAHT-CF @FF C5", "nozzle_temperature": [ "310" ], @@ -77,6 +77,5 @@ ], "textured_plate_temp_initial_layer": [ "80" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json index fd51059ca4..63ab8b0fc1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PAHT-CF @FF C5P", + "inherits": "Generic PA-CF @System", + "from": "system", + "instantiation": "true", "activate_chamber_temp_control": [ "1" ], @@ -49,17 +54,12 @@ "filament_type": [ "PAHT-CF" ], - "from": "system", "hot_plate_temp": [ "80" ], "hot_plate_temp_initial_layer": [ "80" ], - "inherits": "Generic PA-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PAHT-CF @FF C5P", "nozzle_temperature": [ "310" ], @@ -83,6 +83,5 @@ ], "textured_plate_temp_initial_layer": [ "80" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json index ad6dc92e5d..dc97d5fb24 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PET-CF @FF C5", + "inherits": "Generic PETG-CF @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -49,17 +54,12 @@ "filament_type": [ "PET-CF" ], - "from": "system", "hot_plate_temp": [ "100" ], "hot_plate_temp_initial_layer": [ "100" ], - "inherits": "Generic PETG-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PET-CF @FF C5", "nozzle_temperature": [ "270" ], @@ -101,6 +101,5 @@ ], "textured_plate_temp_initial_layer": [ "100" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json index a39fe33edf..581b764bf7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PET-CF @FF C5P", + "inherits": "Generic PETG-CF @System", + "from": "system", + "instantiation": "true", "activate_chamber_temp_control": [ "1" ], @@ -55,17 +60,12 @@ "filament_type": [ "PET-CF" ], - "from": "system", "hot_plate_temp": [ "100" ], "hot_plate_temp_initial_layer": [ "100" ], - "inherits": "Generic PETG-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PET-CF @FF C5P", "nozzle_temperature": [ "270" ], @@ -107,6 +107,5 @@ ], "textured_plate_temp_initial_layer": [ "100" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json index 2c5c05a302..45550b6593 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PETG Pro @FF C5", + "inherits": "Generic PETG @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -43,17 +48,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "85" ], "hot_plate_temp_initial_layer": [ "85" ], - "inherits": "Generic PETG @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PETG Pro @FF C5", "overhang_fan_speed": [ "90" ], @@ -83,6 +83,5 @@ ], "textured_plate_temp_initial_layer": [ "85" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json index 6c24e2d984..db7f2ba5f9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PETG Pro @FF C5P", + "inherits": "Generic PETG @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -46,17 +51,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "85" ], "hot_plate_temp_initial_layer": [ "85" ], - "inherits": "Generic PETG @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PETG Pro @FF C5P", "overhang_fan_speed": [ "90" ], @@ -86,6 +86,5 @@ ], "textured_plate_temp_initial_layer": [ "85" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json index f6c13784cc..b45e1bcf78 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PETG Transparent @FF C5", + "inherits": "Generic PETG @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -43,17 +48,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "85" ], "hot_plate_temp_initial_layer": [ "85" ], - "inherits": "Generic PETG @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PETG Transparent @FF C5", "overhang_fan_speed": [ "90" ], @@ -83,6 +83,5 @@ ], "textured_plate_temp_initial_layer": [ "85" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json index fa89020acf..cadd737312 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PETG Transparent @FF C5P", + "inherits": "Generic PETG @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -46,17 +51,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "85" ], "hot_plate_temp_initial_layer": [ "85" ], - "inherits": "Generic PETG @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PETG Transparent @FF C5P", "overhang_fan_speed": [ "90" ], @@ -86,6 +86,5 @@ ], "textured_plate_temp_initial_layer": [ "85" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json index e75db4d5cb..8ffc379fbd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PETG-CF @FF C5", + "inherits": "Generic PETG-CF @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -46,17 +51,12 @@ "filament_type": [ "PETG-CF" ], - "from": "system", "hot_plate_temp": [ "85" ], "hot_plate_temp_initial_layer": [ "85" ], - "inherits": "Generic PETG-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PETG-CF @FF C5", "nozzle_temperature": [ "250" ], @@ -86,6 +86,5 @@ ], "textured_plate_temp_initial_layer": [ "85" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json index 5457bc7ffd..9b025a5485 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PETG-CF @FF C5P", + "inherits": "Generic PETG-CF @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 Pro 0.4 nozzle", "Flashforge Creator 5 Pro 0.6 nozzle", @@ -46,17 +51,12 @@ "filament_type": [ "PETG-CF" ], - "from": "system", "hot_plate_temp": [ "85" ], "hot_plate_temp_initial_layer": [ "85" ], - "inherits": "Generic PETG-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PETG-CF @FF C5P", "nozzle_temperature": [ "250" ], @@ -86,6 +86,5 @@ ], "textured_plate_temp_initial_layer": [ "85" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json index 6146d89bb1..d3c8f3cd53 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Matte @FF C5", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -43,17 +48,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "65" ], "hot_plate_temp_initial_layer": [ "65" ], - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Matte @FF C5", "nozzle_temperature": [ "210" ], @@ -77,6 +77,5 @@ ], "textured_plate_temp_initial_layer": [ "65" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json index c57402a114..b2dd3dd2c3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Matte @FF C5P", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -46,11 +51,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Matte @FF C5P", "nozzle_temperature": [ "210" ], @@ -68,6 +68,5 @@ ], "supertack_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json index 97cb1c789f..2223ad18ed 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Metal @FF C5", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -43,17 +48,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "65" ], "hot_plate_temp_initial_layer": [ "65" ], - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Metal @FF C5", "pressure_advance": [ "0.025" ], @@ -74,6 +74,5 @@ ], "textured_plate_temp_initial_layer": [ "65" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json index 4d3ffe0551..2a3b4cc0a5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Metal @FF C5P", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -46,11 +51,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Metal @FF C5P", "pressure_advance": [ "0.025" ], @@ -65,6 +65,5 @@ ], "supertack_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json index be7f2c551f..ff5499d3ea 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Pro @FF C5", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -43,17 +48,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "65" ], "hot_plate_temp_initial_layer": [ "65" ], - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Pro @FF C5", "nozzle_temperature": [ "210" ], @@ -77,6 +77,5 @@ ], "textured_plate_temp_initial_layer": [ "65" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json index c8f91848b9..391dc6956c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Pro @FF C5P", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -46,11 +51,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Pro @FF C5P", "nozzle_temperature": [ "210" ], @@ -68,6 +68,5 @@ ], "supertack_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json index 69225281e2..7b1d2a8cd0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Basic @FF C5", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -79,17 +84,12 @@ "filament_unloading_speed_start": [ "30" ], - "from": "system", "hot_plate_temp": [ "65" ], "hot_plate_temp_initial_layer": [ "65" ], - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Basic @FF C5", "nozzle_temperature": [ "210" ], @@ -113,6 +113,5 @@ ], "textured_plate_temp_initial_layer": [ "65" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json index 56af8d423e..5b4318ff48 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Basic @FF C5P", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -46,11 +51,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Basic @FF C5P", "nozzle_temperature": [ "210" ], @@ -68,6 +68,5 @@ ], "supertack_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json index 7de6428c4b..ec44796d82 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Color Change @FF C5", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -43,17 +48,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "65" ], "hot_plate_temp_initial_layer": [ "65" ], - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Color Change @FF C5", "nozzle_temperature": [ "210" ], @@ -77,6 +77,5 @@ ], "textured_plate_temp_initial_layer": [ "65" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json index f904a39664..66aa7e4aa7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Color Change @FF C5P", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -46,11 +51,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Color Change @FF C5P", "nozzle_temperature": [ "210" ], @@ -68,6 +68,5 @@ ], "supertack_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json index cdd5c77596..0d334c8340 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Galaxy @FF C5", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -43,17 +48,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "65" ], "hot_plate_temp_initial_layer": [ "65" ], - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Galaxy @FF C5", "nozzle_temperature": [ "210" ], @@ -77,6 +77,5 @@ ], "textured_plate_temp_initial_layer": [ "65" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json index 8eb54c6878..83018f8a0f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Galaxy @FF C5P", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -46,11 +51,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Galaxy @FF C5P", "nozzle_temperature": [ "210" ], @@ -68,6 +68,5 @@ ], "supertack_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json index f1df56198c..71702bc1db 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Luminous @FF C5", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -43,17 +48,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "65" ], "hot_plate_temp_initial_layer": [ "65" ], - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Luminous @FF C5", "nozzle_temperature": [ "210" ], @@ -77,6 +77,5 @@ ], "textured_plate_temp_initial_layer": [ "65" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json index bc42abfb94..2da74bbfac 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Luminous @FF C5P", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -46,11 +51,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Luminous @FF C5P", "nozzle_temperature": [ "210" ], @@ -68,6 +68,5 @@ ], "supertack_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json index 56bfa0073c..f038743ded 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Silk @FF C5", + "inherits": "Generic PLA Silk @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -49,17 +54,12 @@ "filament_type": [ "SILK" ], - "from": "system", "hot_plate_temp": [ "65" ], "hot_plate_temp_initial_layer": [ "65" ], - "inherits": "Generic PLA Silk @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Silk @FF C5", "nozzle_temperature": [ "230" ], @@ -80,6 +80,5 @@ ], "textured_plate_temp_initial_layer": [ "65" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json index ab4c8e146d..3216d5dbf9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA Silk @FF C5P", + "inherits": "Generic PLA Silk @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -52,11 +57,6 @@ "filament_type": [ "SILK" ], - "from": "system", - "inherits": "Generic PLA Silk @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA Silk @FF C5P", "nozzle_temperature": [ "230" ], @@ -71,6 +71,5 @@ ], "supertack_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json index 88ba85c433..811b8c1a61 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA-CF @FF C5", + "inherits": "Generic PLA-CF @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -43,17 +48,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "65" ], "hot_plate_temp_initial_layer": [ "65" ], - "inherits": "Generic PLA-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA-CF @FF C5", "pressure_advance": [ "0.0225" ], @@ -74,6 +74,5 @@ ], "textured_plate_temp_initial_layer": [ "65" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json index 20a13f620d..79ff969101 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PLA-CF @FF C5P", + "inherits": "Generic PLA-CF @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -46,11 +51,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", - "inherits": "Generic PLA-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PLA-CF @FF C5P", "pressure_advance": [ "0.0225" ], @@ -65,6 +65,5 @@ ], "supertack_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json index b0a8031a82..729ed514fe 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PPA-CF @FF C5", + "inherits": "Generic PPA-GF @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -22,16 +27,10 @@ "filament_type": [ "PPA-CF" ], - "from": "system", - "inherits": "Generic PPA-GF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PPA-CF @FF C5", "textured_cool_plate_temp": [ "0" ], "textured_cool_plate_temp_initial_layer": [ "0" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json index e7150739f1..f1c1fe9b34 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PPA-CF @FF C5P", + "inherits": "Generic PPA-GF @System", + "from": "system", + "instantiation": "true", "activate_chamber_temp_control": [ "1" ], @@ -28,16 +33,10 @@ "filament_type": [ "PPA-CF" ], - "from": "system", - "inherits": "Generic PPA-GF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PPA-CF @FF C5P", "textured_cool_plate_temp": [ "0" ], "textured_cool_plate_temp_initial_layer": [ "0" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json index 63d9812044..b3dd501dce 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PPS-CF @FF C5", + "inherits": "Generic PPA-GF @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -34,17 +39,12 @@ "filament_type": [ "PPS-CF" ], - "from": "system", "hot_plate_temp": [ "110" ], "hot_plate_temp_initial_layer": [ "110" ], - "inherits": "Generic PPA-GF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PPS-CF @FF C5", "nozzle_temperature": [ "320" ], @@ -68,6 +68,5 @@ ], "textured_plate_temp_initial_layer": [ "110" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json index bdfe15555e..5a0b980d5d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PPS-CF @FF C5P", + "inherits": "Generic PPA-GF @System", + "from": "system", + "instantiation": "true", "activate_chamber_temp_control": [ "1" ], @@ -40,17 +45,12 @@ "filament_type": [ "PPS-CF" ], - "from": "system", "hot_plate_temp": [ "110" ], "hot_plate_temp_initial_layer": [ "110" ], - "inherits": "Generic PPA-GF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PPS-CF @FF C5P", "nozzle_temperature": [ "320" ], @@ -74,6 +74,5 @@ ], "textured_plate_temp_initial_layer": [ "110" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json index e8e43d8587..a9919871d1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PVA @FF C5", + "inherits": "Generic PVA @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -46,17 +51,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "60" ], "hot_plate_temp_initial_layer": [ "60" ], - "inherits": "Generic PVA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PVA @FF C5", "nozzle_temperature": [ "240" ], @@ -83,6 +83,5 @@ ], "textured_plate_temp_initial_layer": [ "60" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json index acf26323fd..2a2a042ba4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge PVA @FF C5P", + "inherits": "Generic PVA @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -49,17 +54,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "60" ], "hot_plate_temp_initial_layer": [ "60" ], - "inherits": "Generic PVA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge PVA @FF C5P", "nozzle_temperature": [ "240" ], @@ -86,6 +86,5 @@ ], "textured_plate_temp_initial_layer": [ "60" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json index ff059df85b..429b615021 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge TPU-64D @FF C5", + "inherits": "Generic TPU @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -52,7 +57,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "filament_type": [ "TPU-64D" ], @@ -62,10 +66,6 @@ "hot_plate_temp_initial_layer": [ "40" ], - "inherits": "Generic TPU @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge TPU-64D @FF C5", "nozzle_temperature": [ "230" ], @@ -101,6 +101,5 @@ ], "textured_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json index c0e82895a0..1268b7f71c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge TPU-64D @FF C5P", + "inherits": "Generic TPU @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -55,14 +60,9 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "filament_type": [ "TPU-64D" ], - "inherits": "Generic TPU @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge TPU-64D @FF C5P", "nozzle_temperature": [ "230" ], @@ -92,6 +92,5 @@ ], "textured_cool_plate_temp_initial_layer": [ "35" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json index 1d7ab71d48..23e5178dcf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge TPU-90A @FF C5", + "inherits": "Generic TPU @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -49,7 +54,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "filament_type": [ "TPU-90A" ], @@ -59,10 +63,6 @@ "hot_plate_temp_initial_layer": [ "40" ], - "inherits": "Generic TPU @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge TPU-90A @FF C5", "nozzle_temperature": [ "230" ], @@ -98,6 +98,5 @@ ], "textured_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json index 12f27b5fe3..7e8b19044a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge TPU-90A @FF C5P", + "inherits": "Generic TPU @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -52,7 +57,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "filament_type": [ "TPU-90A" ], @@ -62,10 +66,6 @@ "hot_plate_temp_initial_layer": [ "40" ], - "inherits": "Generic TPU @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge TPU-90A @FF C5P", "nozzle_temperature": [ "230" ], @@ -101,6 +101,5 @@ ], "textured_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json index aff2e2515b..26f22d1c3e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge TPU-95A @FF C5", + "inherits": "Generic TPU @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -52,7 +57,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "filament_type": [ "TPU-95A" ], @@ -62,10 +66,6 @@ "hot_plate_temp_initial_layer": [ "40" ], - "inherits": "Generic TPU @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge TPU-95A @FF C5", "nozzle_temperature": [ "230" ], @@ -101,6 +101,5 @@ ], "textured_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json index 167761c85e..ae7b0a0440 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Flashforge TPU-95A @FF C5P", + "inherits": "Generic TPU @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -58,11 +63,6 @@ "filament_type": [ "TPU-95A" ], - "from": "system", - "inherits": "Generic TPU @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Flashforge TPU-95A @FF C5P", "nozzle_temperature": [ "230" ], @@ -92,6 +92,5 @@ ], "textured_cool_plate_temp_initial_layer": [ "35" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json index d6174a7f7b..59f426577b 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "FusRock PAHT-CF @FF C5", + "inherits": "Generic PA-CF @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -43,17 +48,12 @@ "filament_type": [ "PAHT-CF" ], - "from": "system", "hot_plate_temp": [ "80" ], "hot_plate_temp_initial_layer": [ "80" ], - "inherits": "Generic PA-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "FusRock PAHT-CF @FF C5", "nozzle_temperature": [ "310" ], @@ -77,6 +77,5 @@ ], "textured_plate_temp_initial_layer": [ "80" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json index e192d805e6..f12b431895 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "FusRock PAHT-CF @FF C5P", + "inherits": "Generic PA-CF @System", + "from": "system", + "instantiation": "true", "activate_chamber_temp_control": [ "1" ], @@ -49,17 +54,12 @@ "filament_type": [ "PAHT-CF" ], - "from": "system", "hot_plate_temp": [ "80" ], "hot_plate_temp_initial_layer": [ "80" ], - "inherits": "Generic PA-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "FusRock PAHT-CF @FF C5P", "nozzle_temperature": [ "310" ], @@ -83,6 +83,5 @@ ], "textured_plate_temp_initial_layer": [ "80" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json index 18bb30c3f6..b4607c6962 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json +++ b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "FusRock S-Multi @FF C5", + "inherits": "Generic PETG-CF @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -52,11 +57,6 @@ "filament_type": [ "S-Multi" ], - "from": "system", - "inherits": "Generic PETG-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "FusRock S-Multi @FF C5", "nozzle_temperature": [ "280" ], @@ -92,6 +92,5 @@ ], "textured_cool_plate_temp_initial_layer": [ "0" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json index 2d01387e08..f0ce99f275 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json +++ b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "FusRock S-Multi @FF C5P", + "inherits": "Generic PETG-CF @System", + "from": "system", + "instantiation": "true", "activate_chamber_temp_control": [ "1" ], @@ -58,11 +63,6 @@ "filament_type": [ "S-Multi" ], - "from": "system", - "inherits": "Generic PETG-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "FusRock S-Multi @FF C5P", "nozzle_temperature": [ "280" ], @@ -98,6 +98,5 @@ ], "textured_cool_plate_temp_initial_layer": [ "0" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json index 9d135b9a47..28129198fd 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json +++ b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "FusRock S-PAHT @FF C5", + "inherits": "Generic PA-CF @System", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -46,17 +51,12 @@ "filament_type": [ "S-PAHT" ], - "from": "system", "hot_plate_temp": [ "80" ], "hot_plate_temp_initial_layer": [ "80" ], - "inherits": "Generic PA-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "FusRock S-PAHT @FF C5", "nozzle_temperature_range_high": [ "280" ], @@ -74,6 +74,5 @@ ], "textured_plate_temp_initial_layer": [ "80" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json index 71168d5478..e10d36f4d9 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json +++ b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "FusRock S-PAHT @FF C5P", + "inherits": "Generic PA-CF @System", + "from": "system", + "instantiation": "true", "activate_chamber_temp_control": [ "1" ], @@ -52,17 +57,12 @@ "filament_type": [ "S-PAHT" ], - "from": "system", "hot_plate_temp": [ "80" ], "hot_plate_temp_initial_layer": [ "80" ], - "inherits": "Generic PA-CF @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "FusRock S-PAHT @FF C5P", "nozzle_temperature_range_high": [ "280" ], @@ -80,6 +80,5 @@ ], "textured_plate_temp_initial_layer": [ "80" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Generic BVOH @FF C5.json b/resources/profiles/Flashforge/filament/Generic BVOH @FF C5.json index 8fad84d066..aa49b32140 100644 --- a/resources/profiles/Flashforge/filament/Generic BVOH @FF C5.json +++ b/resources/profiles/Flashforge/filament/Generic BVOH @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Generic BVOH @FF C5", + "inherits": "Generic BVOH @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -40,17 +45,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "60" ], "hot_plate_temp_initial_layer": [ "60" ], - "inherits": "Generic BVOH @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Generic BVOH @FF C5", "pressure_advance": [ "0.0225" ], @@ -68,6 +68,5 @@ ], "textured_plate_temp_initial_layer": [ "60" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Generic BVOH @FF C5P.json b/resources/profiles/Flashforge/filament/Generic BVOH @FF C5P.json index 3051872ad4..a1ed3fc676 100644 --- a/resources/profiles/Flashforge/filament/Generic BVOH @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Generic BVOH @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Generic BVOH @FF C5P", + "inherits": "Generic BVOH @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -43,17 +48,12 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "hot_plate_temp": [ "60" ], "hot_plate_temp_initial_layer": [ "60" ], - "inherits": "Generic BVOH @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Generic BVOH @FF C5P", "pressure_advance": [ "0.0225" ], @@ -68,6 +68,5 @@ ], "textured_plate_temp": [ "60" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Generic PLA @FF C5.json b/resources/profiles/Flashforge/filament/Generic PLA @FF C5.json index 2d96efda81..33b1fda520 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA @FF C5.json +++ b/resources/profiles/Flashforge/filament/Generic PLA @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Generic PLA @FF C5", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -79,17 +84,12 @@ "filament_unloading_speed_start": [ "30" ], - "from": "system", "hot_plate_temp": [ "65" ], "hot_plate_temp_initial_layer": [ "65" ], - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Generic PLA @FF C5", "nozzle_temperature": [ "210" ], @@ -113,6 +113,5 @@ ], "textured_plate_temp_initial_layer": [ "65" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Generic PLA @FF C5P.json b/resources/profiles/Flashforge/filament/Generic PLA @FF C5P.json index bc17ef43e0..046f966eb8 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Generic PLA @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Generic PLA @FF C5P", + "inherits": "Generic PLA @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -46,11 +51,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", - "inherits": "Generic PLA @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Generic PLA @FF C5P", "nozzle_temperature": [ "210" ], @@ -68,6 +68,5 @@ ], "supertack_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5.json b/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5.json index 99cd9f1e7d..7e8a2939e4 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5.json +++ b/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Generic PLA Silk @FF C5", + "inherits": "Generic PLA Silk @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -49,17 +54,12 @@ "filament_type": [ "SILK" ], - "from": "system", "hot_plate_temp": [ "65" ], "hot_plate_temp_initial_layer": [ "65" ], - "inherits": "Generic PLA Silk @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Generic PLA Silk @FF C5", "nozzle_temperature": [ "230" ], @@ -80,6 +80,5 @@ ], "textured_plate_temp_initial_layer": [ "65" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5P.json b/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5P.json index ffcd898492..9bb4eca535 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Generic PLA Silk @FF C5P", + "inherits": "Generic PLA Silk @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -52,11 +57,6 @@ "filament_type": [ "SILK" ], - "from": "system", - "inherits": "Generic PLA Silk @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Generic PLA Silk @FF C5P", "nozzle_temperature": [ "230" ], @@ -71,6 +71,5 @@ ], "supertack_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5.json b/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5.json index 0af57da795..52ff5a781b 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Generic TPU-64D @FF C5", + "inherits": "Generic TPU @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -52,7 +57,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "filament_type": [ "TPU-64D" ], @@ -62,10 +66,6 @@ "hot_plate_temp_initial_layer": [ "40" ], - "inherits": "Generic TPU @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Generic TPU-64D @FF C5", "nozzle_temperature": [ "230" ], @@ -101,6 +101,5 @@ ], "textured_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5P.json b/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5P.json index 3a495efe00..ac2c137b8e 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Generic TPU-64D @FF C5P", + "inherits": "Generic TPU @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -55,14 +60,9 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "filament_type": [ "TPU-64D" ], - "inherits": "Generic TPU @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Generic TPU-64D @FF C5P", "nozzle_temperature": [ "230" ], @@ -92,6 +92,5 @@ ], "textured_cool_plate_temp_initial_layer": [ "35" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5.json b/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5.json index 94bf73abcf..14010fffa7 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Generic TPU-90A @FF C5", + "inherits": "Generic TPU @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -49,7 +54,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "filament_type": [ "TPU-90A" ], @@ -59,10 +63,6 @@ "hot_plate_temp_initial_layer": [ "40" ], - "inherits": "Generic TPU @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Generic TPU-90A @FF C5", "nozzle_temperature": [ "230" ], @@ -98,6 +98,5 @@ ], "textured_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5P.json b/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5P.json index d27531402f..c02fac4cbe 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Generic TPU-90A @FF C5P", + "inherits": "Generic TPU @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -52,14 +57,9 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "filament_type": [ "TPU-90A" ], - "inherits": "Generic TPU @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Generic TPU-90A @FF C5P", "nozzle_temperature": [ "230" ], @@ -89,6 +89,5 @@ ], "textured_cool_plate_temp_initial_layer": [ "35" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5.json b/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5.json index 2f62a048c8..e9e53a0890 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Generic TPU-95A @FF C5", + "inherits": "Generic TPU @System", + "from": "system", + "instantiation": "true", "additional_cooling_fan_speed": [ "40" ], @@ -52,7 +57,6 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "filament_type": [ "TPU-95A" ], @@ -62,10 +66,6 @@ "hot_plate_temp_initial_layer": [ "40" ], - "inherits": "Generic TPU @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Generic TPU-95A @FF C5", "nozzle_temperature": [ "230" ], @@ -101,6 +101,5 @@ ], "textured_plate_temp_initial_layer": [ "40" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5P.json b/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5P.json index f5c8532ed6..aaa43fac52 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5P.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Generic TPU-95A @FF C5P", + "inherits": "Generic TPU @System", + "from": "system", + "instantiation": "true", "activate_air_filtration": [ "1" ], @@ -55,14 +60,9 @@ "filament_start_gcode": [ "; filament start gcode" ], - "from": "system", "filament_type": [ "TPU-95A" ], - "inherits": "Generic TPU @System", - "instantiation": "true", - "is_custom_defined": "0", - "name": "Generic TPU-95A @FF C5P", "nozzle_temperature": [ "230" ], @@ -92,6 +92,5 @@ ], "textured_cool_plate_temp_initial_layer": [ "35" - ], - "version": "2.3.0.3" + ] } diff --git a/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.4 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.4 nozzle.json index 9dda6e29d5..333694e1b0 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.4 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.4 nozzle.json @@ -1,6 +1,10 @@ { "type": "machine", + "name": "Flashforge Creator 5 0.4 nozzle", + "inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle", + "from": "system", "setting_id": "GM001", + "instantiation": "true", "adaptive_bed_mesh_margin": "0", "auxiliary_fan": "1", "bbl_use_printhost": "0", @@ -52,14 +56,10 @@ "fan_kickstart": "0", "fan_speedup_overhangs": "1", "fan_speedup_time": "0", - "from": "system", "gcode_flavor": "klipper", "head_wrap_detect_zone": [], "high_current_on_filament_swap": "0", "host_type": "octoprint", - "inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle", - "instantiation": "true", - "is_custom_defined": "0", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "long_retractions_when_cut": [ "0", @@ -160,7 +160,6 @@ "0.08" ], "min_resonance_avoidance_speed": "70", - "name": "Flashforge Creator 5 0.4 nozzle", "nozzle_diameter": [ "0.4", "0.4", @@ -284,7 +283,6 @@ "upward_compatible_machine": [], "use_firmware_retraction": "0", "use_relative_e_distances": "1", - "version": "2.1.1.0", "wipe": [ "1", "1", diff --git a/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.6 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.6 nozzle.json index dba82cc8a9..a90a6379f3 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.6 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.6 nozzle.json @@ -1,6 +1,10 @@ { "type": "machine", + "name": "Flashforge Creator 5 0.6 nozzle", + "inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle", + "from": "system", "setting_id": "GM001", + "instantiation": "true", "adaptive_bed_mesh_margin": "0", "auxiliary_fan": "1", "bbl_use_printhost": "0", @@ -52,15 +56,10 @@ "fan_kickstart": "0", "fan_speedup_overhangs": "1", "fan_speedup_time": "0", - "from": "system", "gcode_flavor": "klipper", - "head_wrap_detect_zone": [ - ], + "head_wrap_detect_zone": [], "high_current_on_filament_swap": "0", "host_type": "octoprint", - "inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle", - "instantiation": "true", - "is_custom_defined": "0", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "long_retractions_when_cut": [ "0", @@ -161,7 +160,6 @@ "0.08" ], "min_resonance_avoidance_speed": "70", - "name": "Flashforge Creator 5 0.6 nozzle", "nozzle_diameter": [ "0.6", "0.6", @@ -282,11 +280,9 @@ "3", "3" ], - "upward_compatible_machine": [ - ], + "upward_compatible_machine": [], "use_firmware_retraction": "0", "use_relative_e_distances": "1", - "version": "2.1.1.0", "wipe": [ "1", "1", diff --git a/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.8 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.8 nozzle.json index 429559534e..ed2e762094 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.8 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.8 nozzle.json @@ -1,4 +1,9 @@ { + "type": "machine", + "name": "Flashforge Creator 5 0.8 nozzle", + "inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle", + "from": "system", + "instantiation": "true", "adaptive_bed_mesh_margin": "0", "auxiliary_fan": "1", "bbl_use_printhost": "0", @@ -50,15 +55,10 @@ "fan_kickstart": "0", "fan_speedup_overhangs": "1", "fan_speedup_time": "0", - "from": "system", "gcode_flavor": "klipper", - "head_wrap_detect_zone": [ - ], + "head_wrap_detect_zone": [], "high_current_on_filament_swap": "0", "host_type": "octoprint", - "inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle", - "instantiation": "true", - "is_custom_defined": "0", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "long_retractions_when_cut": [ "0", @@ -159,7 +159,6 @@ "0.08" ], "min_resonance_avoidance_speed": "70", - "name": "Flashforge Creator 5 0.8 nozzle", "nozzle_diameter": [ "0.8", "0.8", @@ -280,11 +279,9 @@ "3", "3" ], - "upward_compatible_machine": [ - ], + "upward_compatible_machine": [], "use_firmware_retraction": "0", "use_relative_e_distances": "1", - "version": "2.1.1.0", "wipe": [ "1", "1", diff --git a/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.4 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.4 nozzle.json index f805363cfb..589c1f5a02 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.4 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.4 nozzle.json @@ -1,4 +1,9 @@ { + "type": "machine", + "name": "Flashforge Creator 5 Pro 0.4 nozzle", + "inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle", + "from": "system", + "instantiation": "true", "adaptive_bed_mesh_margin": "0", "auxiliary_fan": "1", "bbl_use_printhost": "0", @@ -50,14 +55,10 @@ "fan_kickstart": "0", "fan_speedup_overhangs": "1", "fan_speedup_time": "0", - "from": "system", "gcode_flavor": "klipper", "head_wrap_detect_zone": [], "high_current_on_filament_swap": "0", "host_type": "octoprint", - "inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle", - "instantiation": "true", - "is_custom_defined": "0", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "long_retractions_when_cut": [ "0", @@ -158,7 +159,6 @@ "0.08" ], "min_resonance_avoidance_speed": "70", - "name": "Flashforge Creator 5 Pro 0.4 nozzle", "nozzle_diameter": [ "0.4", "0.4", @@ -282,7 +282,6 @@ "upward_compatible_machine": [], "use_firmware_retraction": "0", "use_relative_e_distances": "1", - "version": "2.1.1.0", "wipe": [ "1", "1", diff --git a/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.6 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.6 nozzle.json index 07243946f1..416f3545e2 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.6 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.6 nozzle.json @@ -1,4 +1,9 @@ { + "type": "machine", + "name": "Flashforge Creator 5 Pro 0.6 nozzle", + "inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle", + "from": "system", + "instantiation": "true", "adaptive_bed_mesh_margin": "0", "auxiliary_fan": "1", "bbl_use_printhost": "0", @@ -50,15 +55,10 @@ "fan_kickstart": "0", "fan_speedup_overhangs": "1", "fan_speedup_time": "0", - "from": "system", "gcode_flavor": "klipper", - "head_wrap_detect_zone": [ - ], + "head_wrap_detect_zone": [], "high_current_on_filament_swap": "0", "host_type": "octoprint", - "inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle", - "instantiation": "true", - "is_custom_defined": "0", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "long_retractions_when_cut": [ "0", @@ -159,7 +159,6 @@ "0.08" ], "min_resonance_avoidance_speed": "70", - "name": "Flashforge Creator 5 Pro 0.6 nozzle", "nozzle_diameter": [ "0.6", "0.6", @@ -280,11 +279,9 @@ "3", "3" ], - "upward_compatible_machine": [ - ], + "upward_compatible_machine": [], "use_firmware_retraction": "0", "use_relative_e_distances": "1", - "version": "2.1.1.0", "wipe": [ "1", "1", diff --git a/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.8 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.8 nozzle.json index fb1bf11248..d72e8c892c 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.8 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.8 nozzle.json @@ -1,4 +1,9 @@ { + "type": "machine", + "name": "Flashforge Creator 5 Pro 0.8 nozzle", + "inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle", + "from": "system", + "instantiation": "true", "adaptive_bed_mesh_margin": "0", "auxiliary_fan": "1", "bbl_use_printhost": "0", @@ -50,15 +55,10 @@ "fan_kickstart": "0", "fan_speedup_overhangs": "1", "fan_speedup_time": "0", - "from": "system", "gcode_flavor": "klipper", - "head_wrap_detect_zone": [ - ], + "head_wrap_detect_zone": [], "high_current_on_filament_swap": "0", "host_type": "octoprint", - "inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle", - "instantiation": "true", - "is_custom_defined": "0", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "long_retractions_when_cut": [ "0", @@ -159,7 +159,6 @@ "0.08" ], "min_resonance_avoidance_speed": "70", - "name": "Flashforge Creator 5 Pro 0.8 nozzle", "nozzle_diameter": [ "0.8", "0.8", @@ -280,11 +279,9 @@ "3", "3" ], - "upward_compatible_machine": [ - ], + "upward_compatible_machine": [], "use_firmware_retraction": "0", "use_relative_e_distances": "1", - "version": "2.1.1.0", "wipe": [ "1", "1", diff --git a/resources/profiles/Flashforge/process/0.12mm Standard @FF C5.json b/resources/profiles/Flashforge/process/0.12mm Standard @FF C5.json index 08ccf13d19..7e982a4986 100644 --- a/resources/profiles/Flashforge/process/0.12mm Standard @FF C5.json +++ b/resources/profiles/Flashforge/process/0.12mm Standard @FF C5.json @@ -1,4 +1,9 @@ { + "type": "process", + "name": "0.12mm Standard @FF C5", + "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", + "from": "system", + "instantiation": "true", "bridge_speed": "35", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", @@ -10,18 +15,13 @@ "enable_prime_tower": "1", "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", "filter_out_gap_fill": "0.1", - "from": "system", "gap_fill_target": "topbottom", "infill_wall_overlap": "15%", - "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "initial_layer_print_height": "0.25", "inner_wall_acceleration": "10000", - "instantiation": "true", "internal_solid_infill_pattern": "rectilinear", - "is_custom_defined": "0", "layer_height": "0.12", "max_travel_detour_distance": "300", - "name": "0.12mm Standard @FF C5", "only_one_wall_top": "1", "ooze_prevention": "1", "overhang_1_4_speed": "50", @@ -41,7 +41,6 @@ "support_interface_spacing": "0.2", "support_top_z_distance": "0.2", "support_type": "tree(auto)", - "version": "2.1.1.0", "wipe_tower_cone_angle": "12", "wipe_tower_extra_flow": "105%", "wipe_tower_extra_rib_length": "10", diff --git a/resources/profiles/Flashforge/process/0.18mm Standard @FF C5 0.6 nozzle.json b/resources/profiles/Flashforge/process/0.18mm Standard @FF C5 0.6 nozzle.json index 2ec1a21692..c57be39241 100644 --- a/resources/profiles/Flashforge/process/0.18mm Standard @FF C5 0.6 nozzle.json +++ b/resources/profiles/Flashforge/process/0.18mm Standard @FF C5 0.6 nozzle.json @@ -1,4 +1,9 @@ { + "type": "process", + "name": "0.18mm Standard @FF C5 0.6 nozzle", + "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.6 nozzle", "Flashforge Creator 5 Pro 0.6 nozzle" @@ -8,11 +13,9 @@ "enable_prime_tower": "1", "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", "filter_out_gap_fill": "0.1", - "from": "system", "gap_fill_target": "topbottom", "gap_infill_speed": "150", "infill_wall_overlap": "15%", - "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "initial_layer_infill_speed": "55", "initial_layer_line_width": "0.62", "initial_layer_print_height": "0.3", @@ -20,15 +23,12 @@ "inner_wall_acceleration": "10000", "inner_wall_line_width": "0.62", "inner_wall_speed": "150", - "instantiation": "true", "internal_solid_infill_line_width": "0.62", "internal_solid_infill_pattern": "rectilinear", "internal_solid_infill_speed": "150", - "is_custom_defined": "0", "layer_height": "0.18", "line_width": "0.62", "max_travel_detour_distance": "300", - "name": "0.18mm Standard @FF C5 0.6 nozzle", "only_one_wall_top": "1", "ooze_prevention": "1", "outer_wall_line_width": "0.62", @@ -55,7 +55,6 @@ "top_shell_layers": "3", "top_surface_line_width": "0.62", "top_surface_speed": "150", - "version": "2.1.1.0", "wipe_tower_cone_angle": "12", "wipe_tower_extra_rib_length": "10", "wipe_tower_extra_spacing": "120%", diff --git a/resources/profiles/Flashforge/process/0.20mm Standard @FF C5.json b/resources/profiles/Flashforge/process/0.20mm Standard @FF C5.json index f740a590b7..a24ace1fa4 100644 --- a/resources/profiles/Flashforge/process/0.20mm Standard @FF C5.json +++ b/resources/profiles/Flashforge/process/0.20mm Standard @FF C5.json @@ -1,4 +1,9 @@ { + "type": "process", + "name": "0.20mm Standard @FF C5", + "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 Pro 0.4 nozzle" @@ -9,17 +14,12 @@ "enable_prime_tower": "1", "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", "filter_out_gap_fill": "0.1", - "from": "system", "gap_fill_target": "topbottom", "infill_wall_overlap": "15%", - "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "initial_layer_print_height": "0.25", "inner_wall_acceleration": "10000", - "instantiation": "true", "internal_solid_infill_pattern": "rectilinear", - "is_custom_defined": "0", "max_travel_detour_distance": "300", - "name": "0.20mm Standard @FF C5", "only_one_wall_top": "1", "ooze_prevention": "1", "overhang_1_4_speed": "50", @@ -40,7 +40,6 @@ "support_interface_spacing": "0.2", "support_top_z_distance": "0.2", "support_type": "tree(auto)", - "version": "2.1.1.0", "wipe_tower_cone_angle": "12", "wipe_tower_extra_rib_length": "10", "wipe_tower_extra_spacing": "120%", diff --git a/resources/profiles/Flashforge/process/0.24mm Standard @FF C5.json b/resources/profiles/Flashforge/process/0.24mm Standard @FF C5.json index 5a59cd51d5..a701add8fa 100644 --- a/resources/profiles/Flashforge/process/0.24mm Standard @FF C5.json +++ b/resources/profiles/Flashforge/process/0.24mm Standard @FF C5.json @@ -1,4 +1,9 @@ { + "type": "process", + "name": "0.24mm Standard @FF C5", + "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", + "from": "system", + "instantiation": "true", "bridge_speed": "35", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", @@ -10,20 +15,15 @@ "enable_prime_tower": "1", "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", "filter_out_gap_fill": "0.1", - "from": "system", "gap_fill_target": "topbottom", "infill_wall_overlap": "15%", - "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "initial_layer_print_height": "0.25", "inner_wall_acceleration": "10000", "inner_wall_speed": "230", - "instantiation": "true", "internal_solid_infill_pattern": "rectilinear", "internal_solid_infill_speed": "230", - "is_custom_defined": "0", "layer_height": "0.24", "max_travel_detour_distance": "300", - "name": "0.24mm Standard @FF C5", "only_one_wall_top": "1", "ooze_prevention": "1", "overhang_1_4_speed": "50", @@ -44,7 +44,6 @@ "support_interface_spacing": "0.2", "support_top_z_distance": "0.2", "support_type": "tree(auto)", - "version": "2.1.1.0", "wipe_tower_cone_angle": "12", "wipe_tower_extra_rib_length": "10", "wipe_tower_extra_spacing": "120%", diff --git a/resources/profiles/Flashforge/process/0.30mm Standard @FF C5 0.6 nozzle.json b/resources/profiles/Flashforge/process/0.30mm Standard @FF C5 0.6 nozzle.json index 1db533beb4..07500f7c66 100644 --- a/resources/profiles/Flashforge/process/0.30mm Standard @FF C5 0.6 nozzle.json +++ b/resources/profiles/Flashforge/process/0.30mm Standard @FF C5 0.6 nozzle.json @@ -1,4 +1,9 @@ { + "type": "process", + "name": "0.30mm Standard @FF C5 0.6 nozzle", + "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.6 nozzle", "Flashforge Creator 5 Pro 0.6 nozzle" @@ -8,11 +13,9 @@ "enable_prime_tower": "1", "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", "filter_out_gap_fill": "0.1", - "from": "system", "gap_fill_target": "topbottom", "gap_infill_speed": "150", "infill_wall_overlap": "15%", - "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "initial_layer_infill_speed": "55", "initial_layer_line_width": "0.62", "initial_layer_print_height": "0.3", @@ -20,15 +23,12 @@ "inner_wall_acceleration": "10000", "inner_wall_line_width": "0.62", "inner_wall_speed": "150", - "instantiation": "true", "internal_solid_infill_line_width": "0.62", "internal_solid_infill_pattern": "rectilinear", "internal_solid_infill_speed": "150", - "is_custom_defined": "0", "layer_height": "0.3", "line_width": "0.62", "max_travel_detour_distance": "300", - "name": "0.30mm Standard @FF C5 0.6 nozzle", "only_one_wall_top": "1", "ooze_prevention": "1", "outer_wall_line_width": "0.62", @@ -57,7 +57,6 @@ "top_shell_layers": "3", "top_surface_line_width": "0.62", "top_surface_speed": "150", - "version": "2.1.1.0", "wipe_tower_cone_angle": "12", "wipe_tower_extra_rib_length": "10", "wipe_tower_extra_spacing": "120%", diff --git a/resources/profiles/Flashforge/process/0.32mm Standard @FF C5 0.8 nozzle.json b/resources/profiles/Flashforge/process/0.32mm Standard @FF C5 0.8 nozzle.json index c8caa9ee02..41c0d4ce18 100644 --- a/resources/profiles/Flashforge/process/0.32mm Standard @FF C5 0.8 nozzle.json +++ b/resources/profiles/Flashforge/process/0.32mm Standard @FF C5 0.8 nozzle.json @@ -1,4 +1,9 @@ { + "type": "process", + "name": "0.32mm Standard @FF C5 0.8 nozzle", + "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.6 nozzle", "Flashforge Creator 5 Pro 0.6 nozzle" @@ -8,11 +13,9 @@ "enable_prime_tower": "1", "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", "filter_out_gap_fill": "0.1", - "from": "system", "gap_fill_target": "topbottom", "gap_infill_speed": "150", "infill_wall_overlap": "15%", - "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "initial_layer_infill_speed": "55", "initial_layer_line_width": "0.82", "initial_layer_print_height": "0.4", @@ -20,15 +23,12 @@ "inner_wall_acceleration": "10000", "inner_wall_line_width": "0.82", "inner_wall_speed": "150", - "instantiation": "true", "internal_solid_infill_line_width": "0.82", "internal_solid_infill_pattern": "rectilinear", "internal_solid_infill_speed": "150", - "is_custom_defined": "0", "layer_height": "0.32", "line_width": "0.82", "max_travel_detour_distance": "300", - "name": "0.32mm Standard @FF C5 0.8 nozzle", "only_one_wall_top": "1", "ooze_prevention": "1", "outer_wall_line_width": "0.82", @@ -58,7 +58,6 @@ "top_shell_layers": "3", "top_surface_line_width": "0.82", "top_surface_speed": "150", - "version": "2.1.1.0", "wipe_tower_cone_angle": "12", "wipe_tower_extra_rib_length": "10", "wipe_tower_extra_spacing": "120%", diff --git a/resources/profiles/Flashforge/process/0.42mm Standard @FF C5 0.6 nozzle.json b/resources/profiles/Flashforge/process/0.42mm Standard @FF C5 0.6 nozzle.json index 16e44f7573..ff359ca50f 100644 --- a/resources/profiles/Flashforge/process/0.42mm Standard @FF C5 0.6 nozzle.json +++ b/resources/profiles/Flashforge/process/0.42mm Standard @FF C5 0.6 nozzle.json @@ -1,4 +1,9 @@ { + "type": "process", + "name": "0.42mm Standard @FF C5 0.6 nozzle", + "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.6 nozzle", "Flashforge Creator 5 Pro 0.6 nozzle" @@ -8,11 +13,9 @@ "enable_prime_tower": "1", "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", "filter_out_gap_fill": "0.1", - "from": "system", "gap_fill_target": "topbottom", "gap_infill_speed": "150", "infill_wall_overlap": "15%", - "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "initial_layer_infill_speed": "55", "initial_layer_line_width": "0.62", "initial_layer_print_height": "0.3", @@ -20,15 +23,12 @@ "inner_wall_acceleration": "10000", "inner_wall_line_width": "0.62", "inner_wall_speed": "150", - "instantiation": "true", "internal_solid_infill_line_width": "0.62", "internal_solid_infill_pattern": "rectilinear", "internal_solid_infill_speed": "150", - "is_custom_defined": "0", "layer_height": "0.42", "line_width": "0.62", "max_travel_detour_distance": "300", - "name": "0.42mm Standard @FF C5 0.6 nozzle", "only_one_wall_top": "1", "ooze_prevention": "1", "outer_wall_line_width": "0.62", @@ -57,7 +57,6 @@ "top_shell_layers": "3", "top_surface_line_width": "0.62", "top_surface_speed": "150", - "version": "2.1.1.0", "wipe_tower_cone_angle": "12", "wipe_tower_extra_rib_length": "10", "wipe_tower_extra_spacing": "120%", diff --git a/resources/profiles/Flashforge/process/0.48mm Standard @FF C5 0.8 nozzle.json b/resources/profiles/Flashforge/process/0.48mm Standard @FF C5 0.8 nozzle.json index 9c752fc3a1..90e707d1f2 100644 --- a/resources/profiles/Flashforge/process/0.48mm Standard @FF C5 0.8 nozzle.json +++ b/resources/profiles/Flashforge/process/0.48mm Standard @FF C5 0.8 nozzle.json @@ -1,4 +1,9 @@ { + "type": "process", + "name": "0.48mm Standard @FF C5 0.8 nozzle", + "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.8 nozzle", "Flashforge Creator 5 Pro 0.8 nozzle" @@ -8,11 +13,9 @@ "enable_prime_tower": "1", "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", "filter_out_gap_fill": "0.1", - "from": "system", "gap_fill_target": "topbottom", "gap_infill_speed": "150", "infill_wall_overlap": "15%", - "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "initial_layer_infill_speed": "55", "initial_layer_line_width": "0.82", "initial_layer_print_height": "0.4", @@ -20,15 +23,12 @@ "inner_wall_acceleration": "10000", "inner_wall_line_width": "0.82", "inner_wall_speed": "150", - "instantiation": "true", "internal_solid_infill_line_width": "0.82", "internal_solid_infill_pattern": "rectilinear", "internal_solid_infill_speed": "150", - "is_custom_defined": "0", "layer_height": "0.48", "line_width": "0.82", "max_travel_detour_distance": "300", - "name": "0.48mm Standard @FF C5 0.8 nozzle", "only_one_wall_top": "1", "ooze_prevention": "1", "outer_wall_line_width": "0.82", @@ -58,7 +58,6 @@ "top_shell_layers": "3", "top_surface_line_width": "0.82", "top_surface_speed": "150", - "version": "2.1.1.0", "wipe_tower_cone_angle": "12", "wipe_tower_extra_rib_length": "10", "wipe_tower_extra_spacing": "120%", diff --git a/resources/profiles/Flashforge/process/0.4mm Standard @FF C5 0.8 nozzle.json b/resources/profiles/Flashforge/process/0.4mm Standard @FF C5 0.8 nozzle.json index cdb2317023..20f40cf048 100644 --- a/resources/profiles/Flashforge/process/0.4mm Standard @FF C5 0.8 nozzle.json +++ b/resources/profiles/Flashforge/process/0.4mm Standard @FF C5 0.8 nozzle.json @@ -1,4 +1,9 @@ { + "type": "process", + "name": "0.4mm Standard @FF C5 0.8 nozzle", + "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", + "from": "system", + "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.8 nozzle", "Flashforge Creator 5 Pro 0.8 nozzle" @@ -8,11 +13,9 @@ "enable_prime_tower": "1", "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", "filter_out_gap_fill": "0.1", - "from": "system", "gap_fill_target": "topbottom", "gap_infill_speed": "150", "infill_wall_overlap": "15%", - "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "initial_layer_infill_speed": "55", "initial_layer_line_width": "0.82", "initial_layer_print_height": "0.4", @@ -20,15 +23,12 @@ "inner_wall_acceleration": "10000", "inner_wall_line_width": "0.82", "inner_wall_speed": "150", - "instantiation": "true", "internal_solid_infill_line_width": "0.82", "internal_solid_infill_pattern": "rectilinear", "internal_solid_infill_speed": "150", - "is_custom_defined": "0", "layer_height": "0.4", "line_width": "0.82", "max_travel_detour_distance": "300", - "name": "0.4mm Standard @FF C5 0.8 nozzle", "only_one_wall_top": "1", "ooze_prevention": "1", "outer_wall_line_width": "0.82", @@ -58,7 +58,6 @@ "top_shell_layers": "3", "top_surface_line_width": "0.82", "top_surface_speed": "150", - "version": "2.1.1.0", "wipe_tower_cone_angle": "12", "wipe_tower_extra_rib_length": "10", "wipe_tower_extra_spacing": "120%", diff --git a/resources/profiles/LH.json b/resources/profiles/LH.json index 27c489033d..5ee887d550 100644 --- a/resources/profiles/LH.json +++ b/resources/profiles/LH.json @@ -23,53 +23,53 @@ "name": "fdm_process_lh_common", "sub_path": "process/fdm_process_lh_common.json" }, - { - "name": "0.20mm Daily @LH Stinger", - "sub_path": "process/0.20mm Daily @LH Stinger.json" - }, - { - "name": "0.25mm Vase Mode @LH Stinger", - "sub_path": "process/0.25mm Vase Mode @LH Stinger.json" - }, - { - "name": "0.20mm TPU @LH Stinger", - "sub_path": "process/0.20mm TPU @LH Stinger.json" - }, - { - "name": "0.20mm Strength @LH Stinger", - "sub_path": "process/0.20mm Strength @LH Stinger.json" - }, - { - "name": "0.20mm Speed @LH Stinger", - "sub_path": "process/0.20mm Speed @LH Stinger.json" - }, - { - "name": "0.20mm Solid @LH Stinger", - "sub_path": "process/0.20mm Solid @LH Stinger.json" - }, - { - "name": "0.20mm Quiet @LH Stinger", - "sub_path": "process/0.20mm Quiet @LH Stinger.json" - }, - { - "name": "0.20mm PETG @LH Stinger", - "sub_path": "process/0.20mm PETG @LH Stinger.json" - }, - { - "name": "0.20mm MMU @LH Stinger", - "sub_path": "process/0.20mm MMU @LH Stinger.json" - }, { "name": "0.10mm HueForge @LH Stinger", "sub_path": "process/0.10mm HueForge @LH Stinger.json" }, + { + "name": "0.14mm Detail @LH Stinger", + "sub_path": "process/0.14mm Detail @LH Stinger.json" + }, { "name": "0.14mm Detail Strength @LH Stinger", "sub_path": "process/0.14mm Detail Strength @LH Stinger.json" }, { - "name": "0.14mm Detail @LH Stinger", - "sub_path": "process/0.14mm Detail @LH Stinger.json" + "name": "0.20mm Daily @LH Stinger", + "sub_path": "process/0.20mm Daily @LH Stinger.json" + }, + { + "name": "0.20mm MMU @LH Stinger", + "sub_path": "process/0.20mm MMU @LH Stinger.json" + }, + { + "name": "0.20mm PETG @LH Stinger", + "sub_path": "process/0.20mm PETG @LH Stinger.json" + }, + { + "name": "0.20mm Quiet @LH Stinger", + "sub_path": "process/0.20mm Quiet @LH Stinger.json" + }, + { + "name": "0.20mm Solid @LH Stinger", + "sub_path": "process/0.20mm Solid @LH Stinger.json" + }, + { + "name": "0.20mm Speed @LH Stinger", + "sub_path": "process/0.20mm Speed @LH Stinger.json" + }, + { + "name": "0.20mm Strength @LH Stinger", + "sub_path": "process/0.20mm Strength @LH Stinger.json" + }, + { + "name": "0.20mm TPU @LH Stinger", + "sub_path": "process/0.20mm TPU @LH Stinger.json" + }, + { + "name": "0.25mm Vase Mode @LH Stinger", + "sub_path": "process/0.25mm Vase Mode @LH Stinger.json" } ], "filament_list": [ @@ -101,37 +101,37 @@ "name": "fdm_filament_tpu", "sub_path": "filament/fdm_filament_tpu.json" }, - { - "name": "LHS ASA", - "sub_path": "filament/LHS ASA.json" - }, { "name": "LHS ABS", "sub_path": "filament/LHS ABS.json" }, { - "name": "LHS TPU", - "sub_path": "filament/LHS TPU.json" + "name": "LHS ASA", + "sub_path": "filament/LHS ASA.json" }, { - "name": "LHS PLA", - "sub_path": "filament/LHS PLA.json" - }, - { - "name": "LHS TPU Foamy 78A", - "sub_path": "filament/LHS TPU Foamy 78A.json" - }, - { - "name": "LHS PETG", - "sub_path": "filament/LHS PETG.json" + "name": "LHS PC CF", + "sub_path": "filament/LHS PC CF.json" }, { "name": "LHS PCTG", "sub_path": "filament/LHS PCTG.json" }, { - "name": "LHS PC CF", - "sub_path": "filament/LHS PC CF.json" + "name": "LHS PETG", + "sub_path": "filament/LHS PETG.json" + }, + { + "name": "LHS PLA", + "sub_path": "filament/LHS PLA.json" + }, + { + "name": "LHS TPU", + "sub_path": "filament/LHS TPU.json" + }, + { + "name": "LHS TPU Foamy 78A", + "sub_path": "filament/LHS TPU Foamy 78A.json" } ], "machine_list": [ @@ -143,17 +143,17 @@ "name": "fdm_lh_common", "sub_path": "machine/fdm_lh_common.json" }, - { - "name": "fdm_lh_mmu_common", - "sub_path": "machine/fdm_lh_mmu_common.json" - }, { "name": "LH Stinger 0.4 nozzle", "sub_path": "machine/LH Stinger 0.4 nozzle.json" }, + { + "name": "fdm_lh_mmu_common", + "sub_path": "machine/fdm_lh_mmu_common.json" + }, { "name": "LH Stinger MMU 0.4 nozzle", "sub_path": "machine/LH Stinger MMU 0.4 nozzle.json" } ] -} \ No newline at end of file +} diff --git a/resources/profiles/LH/filament/LHS PC CF.json b/resources/profiles/LH/filament/LHS PC CF.json index ec749abf64..522214492f 100644 --- a/resources/profiles/LH/filament/LHS PC CF.json +++ b/resources/profiles/LH/filament/LHS PC CF.json @@ -1,11 +1,11 @@ { - "name": "LHS PC CF", "type": "filament", - "filament_id": "LHF_pccf", - "setting_id": "LHF_S_pccf", - "from": "system", - "instantiation": "true", + "name": "LHS PC CF", "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "LHF_S_pccf", + "filament_id": "LHF_pccf", + "instantiation": "true", "compatible_printers": [ "LH Stinger 0.4 nozzle", "LH Stinger MMU 0.4 nozzle" @@ -88,7 +88,6 @@ "hot_plate_temp_initial_layer": [ "105" ], - "is_custom_defined": "0", "nozzle_temperature": [ "300" ], @@ -119,4 +118,4 @@ "temperature_vitrification": [ "140" ] -} \ No newline at end of file +} diff --git a/resources/profiles/OrcaFilamentLibrary.json b/resources/profiles/OrcaFilamentLibrary.json index 5c4dd28ee8..3a0072476b 100644 --- a/resources/profiles/OrcaFilamentLibrary.json +++ b/resources/profiles/OrcaFilamentLibrary.json @@ -1,6 +1,6 @@ { "name": "OrcaFilamentLibrary", - "version": "02.03.02.60", + "version": "02.04.00.00", "force_update": "0", "description": "Orca Filament Library", "filament_list": [ @@ -116,34 +116,22 @@ "name": "COEX ABS PRIME @base", "sub_path": "filament/COEX/COEX ABS PRIME @base.json" }, + { + "name": "DREMC ABS @base", + "sub_path": "filament/DREMC/DREMC ABS @base.json" + }, + { + "name": "DREMC ABS+ @base", + "sub_path": "filament/DREMC/DREMC ABS+ @base.json" + }, + { + "name": "DREMC ABS-GF @base", + "sub_path": "filament/DREMC/DREMC ABS-GF @base.json" + }, { "name": "Elegoo ABS @base", "sub_path": "filament/Elegoo/Elegoo ABS @base.json" }, - { - "name": "Elegoo ASA @base", - "sub_path": "filament/Elegoo/Elegoo ASA @base.json" - }, - { - "name": "Elegoo PAHT @base", - "sub_path": "filament/Elegoo/Elegoo PAHT @base.json" - }, - { - "name": "Elegoo PC @base", - "sub_path": "filament/Elegoo/Elegoo PC @base.json" - }, - { - "name": "Elegoo PETG @base", - "sub_path": "filament/Elegoo/Elegoo PETG @base.json" - }, - { - "name": "Elegoo PLA @base", - "sub_path": "filament/Elegoo/Elegoo PLA @base.json" - }, - { - "name": "Elegoo TPU @base", - "sub_path": "filament/Elegoo/Elegoo TPU @base.json" - }, { "name": "Eolas Prints ABS @System", "sub_path": "filament/Eolas Prints/Eolas Prints ABS @System.json" @@ -184,10 +172,26 @@ "name": "COEX ASA PRIME @base", "sub_path": "filament/COEX/COEX ASA PRIME @base.json" }, + { + "name": "DREMC ASA @base", + "sub_path": "filament/DREMC/DREMC ASA @base.json" + }, + { + "name": "DREMC ASA CF @base", + "sub_path": "filament/DREMC/DREMC ASA CF @base.json" + }, + { + "name": "DREMC ASA GF @base", + "sub_path": "filament/DREMC/DREMC ASA GF @base.json" + }, { "name": "Elas ASA @base", "sub_path": "filament/Elas/Elas ASA @base.json" }, + { + "name": "Elegoo ASA @base", + "sub_path": "filament/Elegoo/Elegoo ASA @base.json" + }, { "name": "Eolas Prints ASA @System", "sub_path": "filament/Eolas Prints/Eolas Prints ASA @System.json" @@ -260,6 +264,22 @@ "name": "COEX NYLEX UNFILLED @base", "sub_path": "filament/COEX/COEX NYLEX UNFILLED @base.json" }, + { + "name": "DREMC PA12-CF @base", + "sub_path": "filament/DREMC/DREMC PA12-CF @base.json" + }, + { + "name": "DREMC PA6-CF @base", + "sub_path": "filament/DREMC/DREMC PA6-CF @base.json" + }, + { + "name": "Elegoo PAHT @base", + "sub_path": "filament/Elegoo/Elegoo PAHT @base.json" + }, + { + "name": "FILL3D PA @base", + "sub_path": "filament/FILL3D/FILL3D PA @base.json" + }, { "name": "Fiberon PA12-CF @base", "sub_path": "filament/Polymaker/Fiberon PA12-CF @base.json" @@ -292,6 +312,10 @@ "name": "Bambu PC FR @base", "sub_path": "filament/Bambu/Bambu PC FR @base.json" }, + { + "name": "Elegoo PC @base", + "sub_path": "filament/Elegoo/Elegoo PC @base.json" + }, { "name": "Generic PC @System", "sub_path": "filament/Generic PC @System.json" @@ -340,10 +364,22 @@ "name": "COEX PETG @base", "sub_path": "filament/COEX/COEX PETG @base.json" }, + { + "name": "DREMC PET-CF @base", + "sub_path": "filament/DREMC/DREMC PET-CF @base.json" + }, + { + "name": "DREMC PETG @base", + "sub_path": "filament/DREMC/DREMC PETG @base.json" + }, { "name": "Elas PETG Basic @base", "sub_path": "filament/Elas/Elas PETG Basic @base.json" }, + { + "name": "Elegoo PETG @base", + "sub_path": "filament/Elegoo/Elegoo PETG @base.json" + }, { "name": "Eolas Prints PETG @System", "sub_path": "filament/Eolas Prints/Eolas Prints PETG @System.json" @@ -360,6 +396,14 @@ "name": "FDplast PETG @base", "sub_path": "filament/FDplast/FDplast PETG @base.json" }, + { + "name": "FILL3D PETG @base", + "sub_path": "filament/FILL3D/FILL3D PETG @base.json" + }, + { + "name": "FILL3D PETG CF @base", + "sub_path": "filament/FILL3D/FILL3D PETG CF @base.json" + }, { "name": "Fiberon PET-CF @base", "sub_path": "filament/Polymaker/Fiberon PET-CF @base.json" @@ -384,6 +428,10 @@ "name": "Generic PETG-CF @System", "sub_path": "filament/Generic PETG-CF @System.json" }, + { + "name": "GreenGate3D PETG @base", + "sub_path": "filament/GreenGate3D/GreenGate3D PETG @base.json" + }, { "name": "NIT PETG @base", "sub_path": "filament/NIT/NIT PETG @base.json" @@ -488,6 +536,14 @@ "name": "COEX PLA PRIME @base", "sub_path": "filament/COEX/COEX PLA PRIME @base.json" }, + { + "name": "DREMC PLA+ @base", + "sub_path": "filament/DREMC/DREMC PLA+ @base.json" + }, + { + "name": "DREMC PLA+ HS @base", + "sub_path": "filament/DREMC/DREMC PLA HS @base.json" + }, { "name": "Elas PLA Basic @base", "sub_path": "filament/Elas/Elas PLA Basic @base.json" @@ -496,6 +552,10 @@ "name": "Elas PLA Pro @base", "sub_path": "filament/Elas/Elas PLA Pro @base.json" }, + { + "name": "Elegoo PLA @base", + "sub_path": "filament/Elegoo/Elegoo PLA @base.json" + }, { "name": "Eolas Prints PLA Antibacterial @System", "sub_path": "filament/Eolas Prints/Eolas Prints PLA Antibacterial @System.json" @@ -536,6 +596,10 @@ "name": "FDplast PLA @base", "sub_path": "filament/FDplast/FDplast PLA @base.json" }, + { + "name": "FILL3D PLA Basic @base", + "sub_path": "filament/FILL3D/FILL3D PLA Basic @base.json" + }, { "name": "FILL3D PLA Turbo @base", "sub_path": "filament/FILL3D/FILL3D PLA Turbo @base.json" @@ -744,6 +808,14 @@ "name": "fdm_filament_pla_silk", "sub_path": "filament/base/fdm_filament_pla_silk.json" }, + { + "name": "FILL3D PP @base", + "sub_path": "filament/FILL3D/FILL3D PP @base.json" + }, + { + "name": "FILL3D PPCF @base", + "sub_path": "filament/FILL3D/FILL3D PPCF @base.json" + }, { "name": "Generic PP @System", "sub_path": "filament/Generic PP @System.json" @@ -760,6 +832,10 @@ "name": "Bambu PPA-CF @base", "sub_path": "filament/Bambu/Bambu PPA-CF @base.json" }, + { + "name": "DREMC PPA-CF @base", + "sub_path": "filament/DREMC/DREMC PPA-CF @base.json" + }, { "name": "Generic PPA-CF @System", "sub_path": "filament/Generic PPA-CF @System.json" @@ -812,6 +888,14 @@ "name": "COEX TPU 60A @base", "sub_path": "filament/COEX/COEX TPU 60A @base.json" }, + { + "name": "DREMC TPU 95A @base", + "sub_path": "filament/DREMC/DREMC TPU 95A @base.json" + }, + { + "name": "Elegoo TPU @base", + "sub_path": "filament/Elegoo/Elegoo TPU @base.json" + }, { "name": "Eolas Prints TPU D60 UV Resistant @System", "sub_path": "filament/Eolas Prints/Eolas Prints TPU Flex D60 UV Resistant @System.json" @@ -860,6 +944,22 @@ "name": "COEX ABS PRIME @System", "sub_path": "filament/COEX/COEX ABS PRIME @System.json" }, + { + "name": "DREMC ABS @System", + "sub_path": "filament/DREMC/DREMC ABS @System.json" + }, + { + "name": "DREMC ABS+ @System", + "sub_path": "filament/DREMC/DREMC ABS+ @System.json" + }, + { + "name": "DREMC ABS-GF @System", + "sub_path": "filament/DREMC/DREMC ABS-GF @System.json" + }, + { + "name": "Elegoo ABS @System", + "sub_path": "filament/Elegoo/Elegoo ABS @System.json" + }, { "name": "FDplast ABS @System", "sub_path": "filament/FDplast/FDplast ABS @System.json" @@ -893,12 +993,20 @@ "sub_path": "filament/COEX/COEX ASA PRIME @System.json" }, { - "name": "Elas ASA @System", - "sub_path": "filament/Elas/Elas ASA @System.json" + "name": "DREMC ASA @System", + "sub_path": "filament/DREMC/DREMC ASA @System.json" }, { - "name": "Elegoo ABS @System", - "sub_path": "filament/Elegoo/Elegoo ABS @System.json" + "name": "DREMC ASA CF @System", + "sub_path": "filament/DREMC/DREMC ASA CF @System.json" + }, + { + "name": "DREMC ASA GF @System", + "sub_path": "filament/DREMC/DREMC ASA GF @System.json" + }, + { + "name": "Elas ASA @System", + "sub_path": "filament/Elas/Elas ASA @System.json" }, { "name": "Elegoo ASA @System", @@ -908,114 +1016,6 @@ "name": "Elegoo ASA-CF @System", "sub_path": "filament/Elegoo/Elegoo ASA-CF @System.json" }, - { - "name": "Elegoo PAHT-CF @System", - "sub_path": "filament/Elegoo/Elegoo PAHT-CF @System.json" - }, - { - "name": "Elegoo PC @System", - "sub_path": "filament/Elegoo/Elegoo PC @System.json" - }, - { - "name": "Elegoo PC-FR @System", - "sub_path": "filament/Elegoo/Elegoo PC-FR @System.json" - }, - { - "name": "Elegoo PET-CF @System", - "sub_path": "filament/Elegoo/Elegoo PET-CF @System.json" - }, - { - "name": "Elegoo PETG @System", - "sub_path": "filament/Elegoo/Elegoo PETG @System.json" - }, - { - "name": "Elegoo PETG HF @System", - "sub_path": "filament/Elegoo/Elegoo PETG HF @System.json" - }, - { - "name": "Elegoo PETG PRO @System", - "sub_path": "filament/Elegoo/Elegoo PETG PRO @System.json" - }, - { - "name": "Elegoo PETG Translucent @System", - "sub_path": "filament/Elegoo/Elegoo PETG Translucent @System.json" - }, - { - "name": "Elegoo PETG-CF @System", - "sub_path": "filament/Elegoo/Elegoo PETG-CF @System.json" - }, - { - "name": "Elegoo PETG-GF @System", - "sub_path": "filament/Elegoo/Elegoo PETG-GF @System.json" - }, - { - "name": "Elegoo PLA @System", - "sub_path": "filament/Elegoo/Elegoo PLA @System.json" - }, - { - "name": "Elegoo PLA Basic @System", - "sub_path": "filament/Elegoo/Elegoo PLA Basic @System.json" - }, - { - "name": "Elegoo PLA Galaxy @System", - "sub_path": "filament/Elegoo/Elegoo PLA Galaxy @System.json" - }, - { - "name": "Elegoo PLA Glow @System", - "sub_path": "filament/Elegoo/Elegoo PLA Glow @System.json" - }, - { - "name": "Elegoo PLA Marble @System", - "sub_path": "filament/Elegoo/Elegoo PLA Marble @System.json" - }, - { - "name": "Elegoo PLA Matte @System", - "sub_path": "filament/Elegoo/Elegoo PLA Matte @System.json" - }, - { - "name": "Elegoo PLA PRO @System", - "sub_path": "filament/Elegoo/Elegoo PLA PRO @System.json" - }, - { - "name": "Elegoo PLA Silk @System", - "sub_path": "filament/Elegoo/Elegoo PLA Silk @System.json" - }, - { - "name": "Elegoo PLA Sparkle @System", - "sub_path": "filament/Elegoo/Elegoo PLA Sparkle @System.json" - }, - { - "name": "Elegoo PLA Translucent2 @System", - "sub_path": "filament/Elegoo/Elegoo PLA Translucent2 @System.json" - }, - { - "name": "Elegoo PLA Wood @System", - "sub_path": "filament/Elegoo/Elegoo PLA Wood @System.json" - }, - { - "name": "Elegoo PLA+ @System", - "sub_path": "filament/Elegoo/Elegoo PLA+ @System.json" - }, - { - "name": "Elegoo PLA-CF @System", - "sub_path": "filament/Elegoo/Elegoo PLA-CF @System.json" - }, - { - "name": "Elegoo Rapid PETG @System", - "sub_path": "filament/Elegoo/Elegoo Rapid PETG @System.json" - }, - { - "name": "Elegoo Rapid PLA+ @System", - "sub_path": "filament/Elegoo/Elegoo Rapid PLA+ @System.json" - }, - { - "name": "Elegoo Rapid TPU 95A @System", - "sub_path": "filament/Elegoo/Elegoo Rapid TPU 95A @System.json" - }, - { - "name": "Elegoo TPU 95A @System", - "sub_path": "filament/Elegoo/Elegoo TPU 95A @System.json" - }, { "name": "Overture ASA @System", "sub_path": "filament/Overture/Overture ASA @System.json" @@ -1060,6 +1060,22 @@ "name": "COEX NYLEX PA6-CF @System", "sub_path": "filament/COEX/COEX NYLEX PA6-CF @System.json" }, + { + "name": "DREMC PA12-CF @System", + "sub_path": "filament/DREMC/DREMC PA12-CF @System.json" + }, + { + "name": "DREMC PA6-CF @System", + "sub_path": "filament/DREMC/DREMC PA6-CF @System.json" + }, + { + "name": "Elegoo PAHT-CF @System", + "sub_path": "filament/Elegoo/Elegoo PAHT-CF @System.json" + }, + { + "name": "FILL3D PA @System", + "sub_path": "filament/FILL3D/FILL3D PA @System.json" + }, { "name": "Fiberon PA12-CF @System", "sub_path": "filament/Polymaker/Fiberon PA12-CF @System.json" @@ -1084,6 +1100,14 @@ "name": "Bambu PC FR @System", "sub_path": "filament/Bambu/Bambu PC FR @System.json" }, + { + "name": "Elegoo PC @System", + "sub_path": "filament/Elegoo/Elegoo PC @System.json" + }, + { + "name": "Elegoo PC-FR @System", + "sub_path": "filament/Elegoo/Elegoo PC-FR @System.json" + }, { "name": "COEX PCTG PRIME @System", "sub_path": "filament/COEX/COEX PCTG PRIME @System.json" @@ -1124,14 +1148,62 @@ "name": "COEX PETG @System", "sub_path": "filament/COEX/COEX PETG @System.json" }, + { + "name": "DREMC PET-CF @System", + "sub_path": "filament/DREMC/DREMC PET-CF @System.json" + }, + { + "name": "DREMC PETG @System", + "sub_path": "filament/DREMC/DREMC PETG @System.json" + }, { "name": "Elas PETG Basic @System", "sub_path": "filament/Elas/Elas PETG Basic @System.json" }, + { + "name": "Elegoo PET-CF @System", + "sub_path": "filament/Elegoo/Elegoo PET-CF @System.json" + }, + { + "name": "Elegoo PETG @System", + "sub_path": "filament/Elegoo/Elegoo PETG @System.json" + }, + { + "name": "Elegoo PETG HF @System", + "sub_path": "filament/Elegoo/Elegoo PETG HF @System.json" + }, + { + "name": "Elegoo PETG PRO @System", + "sub_path": "filament/Elegoo/Elegoo PETG PRO @System.json" + }, + { + "name": "Elegoo PETG Translucent @System", + "sub_path": "filament/Elegoo/Elegoo PETG Translucent @System.json" + }, + { + "name": "Elegoo PETG-CF @System", + "sub_path": "filament/Elegoo/Elegoo PETG-CF @System.json" + }, + { + "name": "Elegoo PETG-GF @System", + "sub_path": "filament/Elegoo/Elegoo PETG-GF @System.json" + }, + { + "name": "Elegoo Rapid PETG @System", + "sub_path": "filament/Elegoo/Elegoo Rapid PETG @System.json" + }, { "name": "FDplast PETG @System", "sub_path": "filament/FDplast/FDplast PETG @System.json" }, + { + "name": "FILL3D PETG @System", + "sub_path": "filament/FILL3D/FILL3D PETG @System.json" + }, + { + "name": "FILL3D PETG CF @System", + "sub_path": "filament/FILL3D/FILL3D PETG CF @System.json" + }, { "name": "Fiberon PET-CF @System", "sub_path": "filament/Polymaker/Fiberon PET-CF @System.json" @@ -1144,6 +1216,10 @@ "name": "Fiberon PETG-rCF @System", "sub_path": "filament/Polymaker/Fiberon PETG-rCF @System.json" }, + { + "name": "GreenGate3D PETG @System", + "sub_path": "filament/GreenGate3D/GreenGate3D PETG @System.json" + }, { "name": "NIT PETG @System", "sub_path": "filament/NIT/NIT PETG @System.json" @@ -1244,6 +1320,14 @@ "name": "COEX PLA PRIME @System", "sub_path": "filament/COEX/COEX PLA PRIME @System.json" }, + { + "name": "DREMC PLA+ @System", + "sub_path": "filament/DREMC/DREMC PLA+ @System.json" + }, + { + "name": "DREMC PLA+ HS @System", + "sub_path": "filament/DREMC/DREMC PLA HS @System.json" + }, { "name": "Elas PLA Basic @System", "sub_path": "filament/Elas/Elas PLA Basic @System.json" @@ -1252,61 +1336,73 @@ "name": "Elas PLA Pro @System", "sub_path": "filament/Elas/Elas PLA Pro @System.json" }, + { + "name": "Elegoo PLA @System", + "sub_path": "filament/Elegoo/Elegoo PLA @System.json" + }, + { + "name": "Elegoo PLA Basic @System", + "sub_path": "filament/Elegoo/Elegoo PLA Basic @System.json" + }, + { + "name": "Elegoo PLA Galaxy @System", + "sub_path": "filament/Elegoo/Elegoo PLA Galaxy @System.json" + }, + { + "name": "Elegoo PLA Glow @System", + "sub_path": "filament/Elegoo/Elegoo PLA Glow @System.json" + }, + { + "name": "Elegoo PLA Marble @System", + "sub_path": "filament/Elegoo/Elegoo PLA Marble @System.json" + }, + { + "name": "Elegoo PLA Matte @System", + "sub_path": "filament/Elegoo/Elegoo PLA Matte @System.json" + }, + { + "name": "Elegoo PLA PRO @System", + "sub_path": "filament/Elegoo/Elegoo PLA PRO @System.json" + }, + { + "name": "Elegoo PLA Silk @System", + "sub_path": "filament/Elegoo/Elegoo PLA Silk @System.json" + }, + { + "name": "Elegoo PLA Sparkle @System", + "sub_path": "filament/Elegoo/Elegoo PLA Sparkle @System.json" + }, + { + "name": "Elegoo PLA Translucent2 @System", + "sub_path": "filament/Elegoo/Elegoo PLA Translucent2 @System.json" + }, + { + "name": "Elegoo PLA Wood @System", + "sub_path": "filament/Elegoo/Elegoo PLA Wood @System.json" + }, + { + "name": "Elegoo PLA+ @System", + "sub_path": "filament/Elegoo/Elegoo PLA+ @System.json" + }, + { + "name": "Elegoo PLA-CF @System", + "sub_path": "filament/Elegoo/Elegoo PLA-CF @System.json" + }, + { + "name": "Elegoo Rapid PLA+ @System", + "sub_path": "filament/Elegoo/Elegoo Rapid PLA+ @System.json" + }, { "name": "FDplast PLA @System", "sub_path": "filament/FDplast/FDplast PLA @System.json" }, - { - "name": "FILL3D PLA Turbo @System", - "sub_path": "filament/FILL3D/FILL3D PLA Turbo @System.json" - }, - { - "name": "FILL3D PLA Basic @base", - "sub_path": "filament/FILL3D/FILL3D PLA Basic @base.json" - }, { "name": "FILL3D PLA Basic @System", "sub_path": "filament/FILL3D/FILL3D PLA Basic @System.json" }, { - "name": "FILL3D PETG @base", - "sub_path": "filament/FILL3D/FILL3D PETG @base.json" - }, - { - "name": "FILL3D PETG @System", - "sub_path": "filament/FILL3D/FILL3D PETG @System.json" - }, - { - "name": "FILL3D PETG CF @base", - "sub_path": "filament/FILL3D/FILL3D PETG CF @base.json" - }, - { - "name": "FILL3D PETG CF @System", - "sub_path": "filament/FILL3D/FILL3D PETG CF @System.json" - }, - { - "name": "FILL3D PP @base", - "sub_path": "filament/FILL3D/FILL3D PP @base.json" - }, - { - "name": "FILL3D PP @System", - "sub_path": "filament/FILL3D/FILL3D PP @System.json" - }, - { - "name": "FILL3D PPCF @base", - "sub_path": "filament/FILL3D/FILL3D PPCF @base.json" - }, - { - "name": "FILL3D PPCF @System", - "sub_path": "filament/FILL3D/FILL3D PPCF @System.json" - }, - { - "name": "FILL3D PA @base", - "sub_path": "filament/FILL3D/FILL3D PA @base.json" - }, - { - "name": "FILL3D PA @System", - "sub_path": "filament/FILL3D/FILL3D PA @System.json" + "name": "FILL3D PLA Turbo @System", + "sub_path": "filament/FILL3D/FILL3D PLA Turbo @System.json" }, { "name": "NIT PLA @System", @@ -1504,10 +1600,22 @@ "name": "Generic PLA Silk @System", "sub_path": "filament/Generic PLA Silk @System.json" }, + { + "name": "FILL3D PP @System", + "sub_path": "filament/FILL3D/FILL3D PP @System.json" + }, + { + "name": "FILL3D PPCF @System", + "sub_path": "filament/FILL3D/FILL3D PPCF @System.json" + }, { "name": "Bambu PPA-CF @System", "sub_path": "filament/Bambu/Bambu PPA-CF @System.json" }, + { + "name": "DREMC PPA-CF @System", + "sub_path": "filament/DREMC/DREMC PPA-CF @System.json" + }, { "name": "Bambu PVA @System", "sub_path": "filament/Bambu/Bambu PVA @System.json" @@ -1540,6 +1648,18 @@ "name": "COEX TPU 60A @System", "sub_path": "filament/COEX/COEX TPU 60A @System.json" }, + { + "name": "DREMC TPU 95A @System", + "sub_path": "filament/DREMC/DREMC TPU 95A @System.json" + }, + { + "name": "Elegoo Rapid TPU 95A @System", + "sub_path": "filament/Elegoo/Elegoo Rapid TPU 95A @System.json" + }, + { + "name": "Elegoo TPU 95A @System", + "sub_path": "filament/Elegoo/Elegoo TPU 95A @System.json" + }, { "name": "FDplast TPU @System", "sub_path": "filament/FDplast/FDplast TPU @System.json" @@ -1559,126 +1679,6 @@ { "name": "COEX PLA+Silk @System", "sub_path": "filament/COEX/COEX PLA+Silk @System.json" - }, - { - "name": "GreenGate3D PETG @base", - "sub_path": "filament/GreenGate3D/GreenGate3D PETG @base.json" - }, - { - "name": "GreenGate3D PETG @System", - "sub_path": "filament/GreenGate3D/GreenGate3D PETG @System.json" - }, - { - "name": "DREMC PLA+ @base", - "sub_path": "filament/DREMC/DREMC PLA+ @base.json" - }, - { - "name": "DREMC PLA+ @System", - "sub_path": "filament/DREMC/DREMC PLA+ @System.json" - }, - { - "name": "DREMC PETG @base", - "sub_path": "filament/DREMC/DREMC PETG @base.json" - }, - { - "name": "DREMC PETG @System", - "sub_path": "filament/DREMC/DREMC PETG @System.json" - }, - { - "name": "DREMC ABS @base", - "sub_path": "filament/DREMC/DREMC ABS @base.json" - }, - { - "name": "DREMC ABS @System", - "sub_path": "filament/DREMC/DREMC ABS @System.json" - }, - { - "name": "DREMC ABS+ @base", - "sub_path": "filament/DREMC/DREMC ABS+ @base.json" - }, - { - "name": "DREMC ABS+ @System", - "sub_path": "filament/DREMC/DREMC ABS+ @System.json" - }, - { - "name": "DREMC ASA @base", - "sub_path": "filament/DREMC/DREMC ASA @base.json" - }, - { - "name": "DREMC ASA @System", - "sub_path": "filament/DREMC/DREMC ASA @System.json" - }, - { - "name": "DREMC PA6-CF @base", - "sub_path": "filament/DREMC/DREMC PA6-CF @base.json" - }, - { - "name": "DREMC PA6-CF @System", - "sub_path": "filament/DREMC/DREMC PA6-CF @System.json" - }, - { - "name": "DREMC PA12-CF @base", - "sub_path": "filament/DREMC/DREMC PA12-CF @base.json" - }, - { - "name": "DREMC PA12-CF @System", - "sub_path": "filament/DREMC/DREMC PA12-CF @System.json" - }, - { - "name": "DREMC PET-CF @base", - "sub_path": "filament/DREMC/DREMC PET-CF @base.json" - }, - { - "name": "DREMC PET-CF @System", - "sub_path": "filament/DREMC/DREMC PET-CF @System.json" - }, - { - "name": "DREMC ABS-GF @base", - "sub_path": "filament/DREMC/DREMC ABS-GF @base.json" - }, - { - "name": "DREMC ABS-GF @System", - "sub_path": "filament/DREMC/DREMC ABS-GF @System.json" - }, - { - "name": "DREMC TPU 95A @base", - "sub_path": "filament/DREMC/DREMC TPU 95A @base.json" - }, - { - "name": "DREMC TPU 95A @System", - "sub_path": "filament/DREMC/DREMC TPU 95A @System.json" - }, - { - "name": "DREMC PPA-CF @base", - "sub_path": "filament/DREMC/DREMC PPA-CF @base.json" - }, - { - "name": "DREMC PPA-CF @System", - "sub_path": "filament/DREMC/DREMC PPA-CF @System.json" - }, - { - "name": "DREMC PLA+ HS @base", - "sub_path": "filament/DREMC/DREMC PLA HS @base.json" - }, - { - "name": "DREMC PLA+ HS @System", - "sub_path": "filament/DREMC/DREMC PLA HS @System.json" - }, - { - "name": "DREMC ASA CF @base", - "sub_path": "filament/DREMC/DREMC ASA CF @base.json" - }, - { - "name": "DREMC ASA CF @System", - "sub_path": "filament/DREMC/DREMC ASA CF @System.json" - }, - { - "name": "DREMC ASA GF @base", - "sub_path": "filament/DREMC/DREMC ASA GF @base.json" - }, - { - "name": "DREMC ASA GF @System", - "sub_path": "filament/DREMC/DREMC ASA GF @System.json" } ], "process_list": [], diff --git a/resources/profiles/Snapmaker.json b/resources/profiles/Snapmaker.json index ce72bffc09..20468768ad 100644 --- a/resources/profiles/Snapmaker.json +++ b/resources/profiles/Snapmaker.json @@ -218,6 +218,10 @@ "name": "fdm_process_U1_0.28", "sub_path": "process/fdm_process_U1_0.28.json" }, + { + "name": "fdm_process_U1_0.6_common", + "sub_path": "process/fdm_process_U1_0.6_common.json" + }, { "name": "0.08 Extra Fine @Snapmaker Artisan (0.4 nozzle)", "sub_path": "process/0.08 Extra Fine @Snapmaker Artisan (0.4 nozzle).json" @@ -434,6 +438,10 @@ "name": "0.20 Standard @Snapmaker U1 (0.4 nozzle)", "sub_path": "process/0.20 Standard @Snapmaker U1 (0.4 nozzle).json" }, + { + "name": "0.20 Standard @Snapmaker U1 (0.4+0.6 nozzle)", + "sub_path": "process/0.20 Standard @Snapmaker U1 (0.4+0.6 nozzle).json" + }, { "name": "0.20 Strength @Snapmaker U1 (0.4 nozzle)", "sub_path": "process/0.20 Strength @Snapmaker U1 (0.4 nozzle).json" @@ -454,10 +462,6 @@ "name": "0.28 Extra Draft @Snapmaker U1 (0.4 nozzle)", "sub_path": "process/0.28 Extra Draft @Snapmaker U1 (0.4 nozzle).json" }, - { - "name": "fdm_process_U1_0.6_common", - "sub_path": "process/fdm_process_U1_0.6_common.json" - }, { "name": "0.20 Standard @Snapmaker U1 (0.6 nozzle)", "sub_path": "process/0.20 Standard @Snapmaker U1 (0.6 nozzle).json" @@ -470,10 +474,6 @@ "name": "0.40 Extra Draft @Snapmaker U1 (0.6 nozzle)", "sub_path": "process/0.40 Extra Draft @Snapmaker U1 (0.6 nozzle).json" }, - { - "name": "0.20 Standard @Snapmaker U1 (0.4+0.6 nozzle)", - "sub_path": "process/0.20 Standard @Snapmaker U1 (0.4+0.6 nozzle).json" - }, { "name": "0.06 Standard @Snapmaker Artisan (0.2 nozzle)", "sub_path": "process/0.06 Standard @Snapmaker Artisan (0.2 nozzle).json" @@ -556,6 +556,10 @@ "name": "fdm_filament_tpu", "sub_path": "filament/fdm_filament_tpu.json" }, + { + "name": "Fiberon PPS-GF20 @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Fiberon PPS-GF20 @Snapmaker U1 base.json" + }, { "name": "Snapmaker ABS @U1 base", "sub_path": "filament/Snapmaker ABS @U1 base.json" @@ -572,6 +576,10 @@ "name": "Snapmaker J1 ABS @base", "sub_path": "filament/Snapmaker J1 ABS @base.json" }, + { + "name": "Fiberon ASA-CF08 @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1 base.json" + }, { "name": "Snapmaker ASA @U1 base", "sub_path": "filament/Snapmaker ASA @U1 base.json" @@ -596,6 +604,18 @@ "name": "Snapmaker J1 Breakaway @base", "sub_path": "filament/Snapmaker J1 Breakaway @base.json" }, + { + "name": "Fiberon PA12-CF10 @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1 base.json" + }, + { + "name": "Fiberon PA6-CF20 @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1 base.json" + }, + { + "name": "Fiberon PA612-ESD @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Fiberon PA612-ESD @Snapmaker U1 base.json" + }, { "name": "Snapmaker Dual PA-CF @base", "sub_path": "filament/Snapmaker Dual PA-CF @base.json" @@ -628,14 +648,34 @@ "name": "Snapmaker PET @base", "sub_path": "filament/Snapmaker PET @base.json" }, + { + "name": "Fiberon PETG-ESD @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1 base.json" + }, { "name": "PolyLite PETG @Base", "sub_path": "filament/Polymaker/PolyLite PETG @Base.json" }, + { + "name": "PolyLite PETG @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyLite PETG @Snapmaker U1 base.json" + }, + { + "name": "PolyLite PETG Translucent @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1 base.json" + }, { "name": "Polymaker PETG @Base", "sub_path": "filament/Polymaker/Polymaker PETG @Base.json" }, + { + "name": "Polymaker PETG @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Polymaker PETG @Snapmaker U1 base.json" + }, + { + "name": "Polymaker PETG Galaxy @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Polymaker PETG Galaxy @Snapmaker U1 base.json" + }, { "name": "Snapmaker Dual PETG @base", "sub_path": "filament/Snapmaker Dual PETG @base.json" @@ -669,105 +709,157 @@ "sub_path": "filament/Snapmaker PETG-CF @base.json" }, { - "name": "Panchroma CoPE @U1 base", - "sub_path": "filament/Polymaker/Panchroma CoPE @U1 base.json" + "name": "Panchroma CoPE @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma CoPE @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA @U1 base.json" + "name": "Panchroma PLA @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA Celestial @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA Celestial @U1 base.json" + "name": "Panchroma PLA Celestial @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA Celestial @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA Galaxy @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA Galaxy @U1 base.json" + "name": "Panchroma PLA Galaxy @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA Galaxy @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA Glow @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA Glow @U1 base.json" + "name": "Panchroma PLA Glow @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA Glow @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA Luminous @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA Luminous @U1 base.json" + "name": "Panchroma PLA Luminous @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA Luminous @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA Marble @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA Marble @U1 base.json" + "name": "Panchroma PLA Marble @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA Marble @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA Matte @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA Matte @U1 base.json" + "name": "Panchroma PLA Matte @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA Matte @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA Metallic @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA Metallic @U1 base.json" + "name": "Panchroma PLA Metallic @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA Metallic @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA Neon @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA Neon @U1 base.json" + "name": "Panchroma PLA Neon @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA Neon @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA Satin @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA Satin @U1 base.json" + "name": "Panchroma PLA Satin @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA Satin @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA Silk @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA Silk @U1 base.json" + "name": "Panchroma PLA Silk @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA Silk @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA Starlight @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA Starlight @U1 base.json" + "name": "Panchroma PLA Starlight @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA Starlight @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA Temp Shift @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA Temp Shift @U1 base.json" + "name": "Panchroma PLA Temp Shift @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA Temp Shift @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA Translucent @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA Translucent @U1 base.json" + "name": "Panchroma PLA Translucent @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA Translucent @Snapmaker U1 base.json" }, { - "name": "Panchroma PLA UV Shift @U1 base", - "sub_path": "filament/Polymaker/Panchroma PLA UV Shift @U1 base.json" + "name": "Panchroma PLA UV Shift @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Panchroma PLA UV Shift @Snapmaker U1 base.json" }, { - "name": "PolyLite PLA @U1 base", - "sub_path": "filament/Polymaker/PolyLite PLA @U1 base.json" + "name": "PolyLite CosPLA @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyLite CosPLA @Snapmaker U1 base.json" + }, + { + "name": "PolyLite PLA @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyLite PLA @Snapmaker U1 base.json" }, { "name": "PolyLite PLA @base", "sub_path": "filament/Polymaker/PolyLite PLA @base.json" }, { - "name": "PolyLite PLA Pro @U1 base", - "sub_path": "filament/Polymaker/PolyLite PLA Pro @U1 base.json" + "name": "PolyLite PLA Galaxy @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyLite PLA Galaxy @Snapmaker U1 base.json" }, { - "name": "PolyTerra PLA @U1 base", - "sub_path": "filament/Polymaker/PolyTerra PLA @U1 base.json" + "name": "PolyLite PLA Glow @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyLite PLA Glow @Snapmaker U1 base.json" + }, + { + "name": "PolyLite PLA Luminous @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyLite PLA Luminous @Snapmaker U1 base.json" + }, + { + "name": "PolyLite PLA Neon @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyLite PLA Neon @Snapmaker U1 base.json" + }, + { + "name": "PolyLite PLA Pro @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyLite PLA Pro @Snapmaker U1 base.json" + }, + { + "name": "PolyLite PLA Pro Metallic @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyLite PLA Pro Metallic @Snapmaker U1 base.json" + }, + { + "name": "PolyLite PLA Starlight @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyLite PLA Starlight @Snapmaker U1 base.json" + }, + { + "name": "PolyLite PLA Translucent @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyLite PLA Translucent @Snapmaker U1 base.json" + }, + { + "name": "PolyTerra PLA @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyTerra PLA @Snapmaker U1 base.json" + }, + { + "name": "PolyTerra PLA Marble @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyTerra PLA Marble @Snapmaker U1 base.json" + }, + { + "name": "PolyTerra PLA+ @Snapmaker U1 base", + "sub_path": "filament/Polymaker/PolyTerra PLA+ @Snapmaker U1 base.json" }, { "name": "Polymaker HT-PLA @Base", "sub_path": "filament/Polymaker/Polymaker HT-PLA @Base.json" }, { - "name": "Polymaker HT-PLA @U1 base", - "sub_path": "filament/Polymaker/Polymaker HT-PLA @U1 base.json" + "name": "Polymaker HT-PLA @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Polymaker HT-PLA @Snapmaker U1 base.json" }, { "name": "Polymaker HT-PLA-GF @Base", "sub_path": "filament/Polymaker/Polymaker HT-PLA-GF @Base.json" }, { - "name": "Polymaker HT-PLA-GF @U1 base", - "sub_path": "filament/Polymaker/Polymaker HT-PLA-GF @U1 base.json" + "name": "Polymaker HT-PLA-GF @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Polymaker HT-PLA-GF @Snapmaker U1 base.json" + }, + { + "name": "Polymaker PLA @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Polymaker PLA @Snapmaker U1 base.json" }, { "name": "Polymaker PLA Pro @Base", "sub_path": "filament/Polymaker/Polymaker PLA Pro @Base.json" }, + { + "name": "Polymaker PLA Pro @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Polymaker PLA Pro @Snapmaker U1 base.json" + }, + { + "name": "Polymaker PLA Pro Metallic @Snapmaker U1 base", + "sub_path": "filament/Polymaker/Polymaker PLA Pro Metallic @Snapmaker U1 base.json" + }, { "name": "Snapmaker Dual PLA @base", "sub_path": "filament/Snapmaker Dual PLA @base.json" @@ -872,6 +964,10 @@ "name": "Snapmaker TPU @base", "sub_path": "filament/Snapmaker TPU @base.json" }, + { + "name": "Fiberon PPS-GF20 @Snapmaker U1", + "sub_path": "filament/Polymaker/Fiberon PPS-GF20 @Snapmaker U1.json" + }, { "name": "Snapmaker ABS @U1", "sub_path": "filament/Snapmaker ABS @U1.json" @@ -920,6 +1016,10 @@ "name": "Snapmaker J1 ABS Benchy", "sub_path": "filament/Snapmaker J1 ABS Benchy.json" }, + { + "name": "Fiberon ASA-CF08 @Snapmaker U1", + "sub_path": "filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1.json" + }, { "name": "Snapmaker ASA @U1", "sub_path": "filament/Snapmaker ASA @U1.json" @@ -964,6 +1064,18 @@ "name": "Snapmaker J1 Breakaway @0.2 nozzle", "sub_path": "filament/Snapmaker J1 Breakaway @0.2 nozzle.json" }, + { + "name": "Fiberon PA12-CF10 @Snapmaker U1", + "sub_path": "filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1.json" + }, + { + "name": "Fiberon PA6-CF20 @Snapmaker U1", + "sub_path": "filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1.json" + }, + { + "name": "Fiberon PA612-ESD @Snapmaker U1", + "sub_path": "filament/Polymaker/Fiberon PA612-ESD @Snapmaker U1.json" + }, { "name": "Snapmaker Dual PA-CF", "sub_path": "filament/Snapmaker Dual PA-CF.json" @@ -1000,14 +1112,26 @@ "name": "Snapmaker PET", "sub_path": "filament/Snapmaker PET.json" }, + { + "name": "Fiberon PETG-ESD @Snapmaker U1", + "sub_path": "filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1.json" + }, { "name": "PolyLite PETG @Snapmaker U1", "sub_path": "filament/Polymaker/PolyLite PETG @Snapmaker U1.json" }, + { + "name": "PolyLite PETG Translucent @Snapmaker U1", + "sub_path": "filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1.json" + }, { "name": "Polymaker PETG @Snapmaker U1", "sub_path": "filament/Polymaker/Polymaker PETG @Snapmaker U1.json" }, + { + "name": "Polymaker PETG Galaxy @Snapmaker U1", + "sub_path": "filament/Polymaker/Polymaker PETG Galaxy @Snapmaker U1.json" + }, { "name": "Snapmaker Dual PETG", "sub_path": "filament/Snapmaker Dual PETG.json" @@ -1061,72 +1185,76 @@ "sub_path": "filament/Snapmaker PETG-CF.json" }, { - "name": "Panchroma CoPE @U1", - "sub_path": "filament/Polymaker/Panchroma CoPE @U1.json" + "name": "Panchroma CoPE @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma CoPE @Snapmaker U1.json" }, { - "name": "Panchroma PLA @U1", - "sub_path": "filament/Polymaker/Panchroma PLA @U1.json" + "name": "Panchroma PLA @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA @Snapmaker U1.json" }, { - "name": "Panchroma PLA Celestial @U1", - "sub_path": "filament/Polymaker/Panchroma PLA Celestial @U1.json" + "name": "Panchroma PLA Celestial @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA Celestial @Snapmaker U1.json" }, { - "name": "Panchroma PLA Galaxy @U1", - "sub_path": "filament/Polymaker/Panchroma PLA Galaxy @U1.json" + "name": "Panchroma PLA Galaxy @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA Galaxy @Snapmaker U1.json" }, { - "name": "Panchroma PLA Glow @U1", - "sub_path": "filament/Polymaker/Panchroma PLA Glow @U1.json" + "name": "Panchroma PLA Glow @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA Glow @Snapmaker U1.json" }, { - "name": "Panchroma PLA Luminous @U1", - "sub_path": "filament/Polymaker/Panchroma PLA Luminous @U1.json" + "name": "Panchroma PLA Luminous @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA Luminous @Snapmaker U1.json" }, { - "name": "Panchroma PLA Marble @U1", - "sub_path": "filament/Polymaker/Panchroma PLA Marble @U1.json" + "name": "Panchroma PLA Marble @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA Marble @Snapmaker U1.json" }, { - "name": "Panchroma PLA Matte @U1", - "sub_path": "filament/Polymaker/Panchroma PLA Matte @U1.json" + "name": "Panchroma PLA Matte @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA Matte @Snapmaker U1.json" }, { - "name": "Panchroma PLA Metallic @U1", - "sub_path": "filament/Polymaker/Panchroma PLA Metallic @U1.json" + "name": "Panchroma PLA Metallic @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA Metallic @Snapmaker U1.json" }, { - "name": "Panchroma PLA Neon @U1", - "sub_path": "filament/Polymaker/Panchroma PLA Neon @U1.json" + "name": "Panchroma PLA Neon @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA Neon @Snapmaker U1.json" }, { - "name": "Panchroma PLA Satin @U1", - "sub_path": "filament/Polymaker/Panchroma PLA Satin @U1.json" + "name": "Panchroma PLA Satin @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA Satin @Snapmaker U1.json" }, { - "name": "Panchroma PLA Silk @U1", - "sub_path": "filament/Polymaker/Panchroma PLA Silk @U1.json" + "name": "Panchroma PLA Silk @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA Silk @Snapmaker U1.json" }, { - "name": "Panchroma PLA Starlight @U1", - "sub_path": "filament/Polymaker/Panchroma PLA Starlight @U1.json" + "name": "Panchroma PLA Starlight @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA Starlight @Snapmaker U1.json" }, { - "name": "Panchroma PLA Temp Shift @U1", - "sub_path": "filament/Polymaker/Panchroma PLA Temp Shift @U1.json" + "name": "Panchroma PLA Temp Shift @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA Temp Shift @Snapmaker U1.json" }, { - "name": "Panchroma PLA Translucent @U1", - "sub_path": "filament/Polymaker/Panchroma PLA Translucent @U1.json" + "name": "Panchroma PLA Translucent @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA Translucent @Snapmaker U1.json" }, { - "name": "Panchroma PLA UV Shift @U1", - "sub_path": "filament/Polymaker/Panchroma PLA UV Shift @U1.json" + "name": "Panchroma PLA UV Shift @Snapmaker U1", + "sub_path": "filament/Polymaker/Panchroma PLA UV Shift @Snapmaker U1.json" }, { - "name": "PolyLite PLA @U1", - "sub_path": "filament/Polymaker/PolyLite PLA @U1.json" + "name": "PolyLite CosPLA @Snapmaker U1", + "sub_path": "filament/Polymaker/PolyLite CosPLA @Snapmaker U1.json" + }, + { + "name": "PolyLite PLA @Snapmaker U1", + "sub_path": "filament/Polymaker/PolyLite PLA @Snapmaker U1.json" }, { "name": "PolyLite J1 PLA", @@ -1137,33 +1265,69 @@ "sub_path": "filament/Polymaker/PolyLite PLA @0.2 nozzle.json" }, { - "name": "PolyLite PLA Pro @U1", - "sub_path": "filament/Polymaker/PolyLite PLA Pro @U1.json" + "name": "PolyLite PLA Galaxy @Snapmaker U1", + "sub_path": "filament/Polymaker/PolyLite PLA Galaxy @Snapmaker U1.json" }, { - "name": "PolyTerra PLA @U1", - "sub_path": "filament/Polymaker/PolyTerra PLA @U1.json" + "name": "PolyLite PLA Glow @Snapmaker U1", + "sub_path": "filament/Polymaker/PolyLite PLA Glow @Snapmaker U1.json" + }, + { + "name": "PolyLite PLA Luminous @Snapmaker U1", + "sub_path": "filament/Polymaker/PolyLite PLA Luminous @Snapmaker U1.json" + }, + { + "name": "PolyLite PLA Neon @Snapmaker U1", + "sub_path": "filament/Polymaker/PolyLite PLA Neon @Snapmaker U1.json" + }, + { + "name": "PolyLite PLA Pro @Snapmaker U1", + "sub_path": "filament/Polymaker/PolyLite PLA Pro @Snapmaker U1.json" + }, + { + "name": "PolyLite PLA Pro Metallic @Snapmaker U1", + "sub_path": "filament/Polymaker/PolyLite PLA Pro Metallic @Snapmaker U1.json" + }, + { + "name": "PolyLite PLA Starlight @Snapmaker U1", + "sub_path": "filament/Polymaker/PolyLite PLA Starlight @Snapmaker U1.json" + }, + { + "name": "PolyLite PLA Translucent @Snapmaker U1", + "sub_path": "filament/Polymaker/PolyLite PLA Translucent @Snapmaker U1.json" + }, + { + "name": "PolyTerra PLA @Snapmaker U1", + "sub_path": "filament/Polymaker/PolyTerra PLA @Snapmaker U1.json" + }, + { + "name": "PolyTerra PLA Marble @Snapmaker U1", + "sub_path": "filament/Polymaker/PolyTerra PLA Marble @Snapmaker U1.json" + }, + { + "name": "PolyTerra PLA+ @Snapmaker U1", + "sub_path": "filament/Polymaker/PolyTerra PLA+ @Snapmaker U1.json" }, { "name": "Polymaker HT-PLA @Snapmaker U1", "sub_path": "filament/Polymaker/Polymaker HT-PLA @Snapmaker U1.json" }, - { - "name": "Polymaker HT-PLA @U1", - "sub_path": "filament/Polymaker/Polymaker HT-PLA @U1.json" - }, { "name": "Polymaker HT-PLA-GF @Snapmaker U1", "sub_path": "filament/Polymaker/Polymaker HT-PLA-GF @Snapmaker U1.json" }, { - "name": "Polymaker HT-PLA-GF @U1", - "sub_path": "filament/Polymaker/Polymaker HT-PLA-GF @U1.json" + "name": "Polymaker PLA @Snapmaker U1", + "sub_path": "filament/Polymaker/Polymaker PLA @Snapmaker U1.json" }, { "name": "Polymaker PLA Pro @Snapmaker U1", "sub_path": "filament/Polymaker/Polymaker PLA Pro @Snapmaker U1.json" }, + { + "name": "Polymaker PLA Pro Metallic @Snapmaker U1", + "sub_path": "filament/Polymaker/Polymaker PLA Pro Metallic @Snapmaker U1.json" + }, { "name": "Snapmaker Dual PLA", "sub_path": "filament/Snapmaker Dual PLA.json" @@ -1550,14 +1714,14 @@ "name": "Snapmaker U1 (0.4 nozzle)", "sub_path": "machine/Snapmaker U1 (0.4 nozzle).json" }, - { - "name": "Snapmaker U1 (0.6 nozzle)", - "sub_path": "machine/Snapmaker U1 (0.6 nozzle).json" - }, { "name": "Snapmaker U1 (0.4+0.6 nozzle)", "sub_path": "machine/Snapmaker U1 (0.4+0.6 nozzle).json" }, + { + "name": "Snapmaker U1 (0.6 nozzle)", + "sub_path": "machine/Snapmaker U1 (0.6 nozzle).json" + }, { "name": "Snapmaker A250 BKit (0.2 nozzle)", "sub_path": "machine/Snapmaker A250 BKit (0.2 nozzle).json" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1 base.json new file mode 100644 index 0000000000..dfbff7e8fb --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1 base.json @@ -0,0 +1,83 @@ +{ + "type": "filament", + "name": "Fiberon ASA-CF08 @Snapmaker U1 base", + "inherits": "fdm_filament_asa", + "from": "system", + "filament_id": "GFL71", + "instantiation": "false", + "additional_cooling_fan_speed": [ + "0" + ], + "bed_type": [ + "Cool Plate" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "cool_plate_temp": [ + "105" + ], + "cool_plate_temp_initial_layer": [ + "105" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_cooling_layer_time": [ + "31" + ], + "fan_max_speed": [ + "30" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.09" + ], + "filament_flow_ratio": [ + "0.88" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "105" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "nozzle_temperature_range_low": [ + "260" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "30" + ], + "temperature_vitrification": [ + "110.8" + ], + "textured_plate_temp": [ + "105" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_type": [ + "ASA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1.json new file mode 100644 index 0000000000..b627ee798d --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Fiberon ASA-CF08 @Snapmaker U1", + "inherits": "Fiberon ASA-CF08 @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL71_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + + "pressure_advance": [ + "0.05" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1 base.json new file mode 100644 index 0000000000..b292f8dd62 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1 base.json @@ -0,0 +1,80 @@ +{ + "type": "filament", + "name": "Fiberon PA12-CF10 @Snapmaker U1 base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFL56", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_cooling_layer_time": [ + "31" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "20" + ], + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.06" + ], + "filament_flow_ratio": [ + "0.87" + ], + "filament_vendor": [ + "Polymaker" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "270" + ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "nozzle_temperature_range_high": [ + "300" + ], + "nozzle_temperature_range_low": [ + "280" + ], + "overhang_fan_threshold": [ + "95%" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "55" + ], + "textured_plate_temp": [ + "90" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "filament_type": [ + "PA-CF" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1.json new file mode 100644 index 0000000000..fa7f298e1b --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "name": "Fiberon PA12-CF10 @Snapmaker U1", + "inherits": "Fiberon PA12-CF10 @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL56_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retraction_length": [ + "1.0" + ], + "filament_z_hop": [ + "0.0" + ], + + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.05" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1 base.json new file mode 100644 index 0000000000..88aab14bbf --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1 base.json @@ -0,0 +1,77 @@ +{ + "type": "filament", + "name": "Fiberon PA6-CF20 @Snapmaker U1 base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFL57", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_cooling_layer_time": [ + "31" + ], + "fan_max_speed": [ + "10" + ], + "fan_min_speed": [ + "0" + ], + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.17" + ], + "filament_type": [ + "PA6-CF" + ], + "filament_vendor": [ + "Polymaker" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "290" + ], + "nozzle_temperature_initial_layer": [ + "290" + ], + "nozzle_temperature_range_high": [ + "300" + ], + "nozzle_temperature_range_low": [ + "280" + ], + "overhang_fan_threshold": [ + "95%" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "74.2" + ], + "textured_plate_temp": [ + "90" + ], + "textured_plate_temp_initial_layer": [ + "90" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1.json new file mode 100644 index 0000000000..ffbdfdd8c0 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "name": "Fiberon PA6-CF20 @Snapmaker U1", + "inherits": "Fiberon PA6-CF20 @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL57_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retraction_length": [ + "1.0" + ], + "filament_z_hop": [ + "0.0" + ], + + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.08" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA612-ESD @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA612-ESD @Snapmaker U1 base.json new file mode 100644 index 0000000000..f14d1abc1f --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA612-ESD @Snapmaker U1 base.json @@ -0,0 +1,80 @@ +{ + "type": "filament", + "name": "Fiberon PA612-ESD @Snapmaker U1 base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFL72", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_cooling_layer_time": [ + "25" + ], + "fan_max_speed": [ + "10" + ], + "fan_min_speed": [ + "0" + ], + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.1" + ], + "filament_flow_ratio": [ + "0.89" + ], + "filament_vendor": [ + "Polymaker" + ], + "full_fan_speed_layer": [ + "2" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "270" + ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "nozzle_temperature_range_high": [ + "300" + ], + "nozzle_temperature_range_low": [ + "280" + ], + "overhang_fan_speed": [ + "40" + ], + "slow_down_layer_time": [ + "1" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "190" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_type": [ + "PA-CF" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA612-ESD @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA612-ESD @Snapmaker U1.json new file mode 100644 index 0000000000..2ddc92605e --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA612-ESD @Snapmaker U1.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "name": "Fiberon PA612-ESD @Snapmaker U1", + "inherits": "Fiberon PA612-ESD @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL72_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retraction_length": [ + "1.0" + ], + "filament_z_hop": [ + "0.0" + ], + "description": " ", + "enable_pressure_advance": [ + "1" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1 base.json new file mode 100644 index 0000000000..75e03cc52a --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1 base.json @@ -0,0 +1,77 @@ +{ + "type": "filament", + "name": "Fiberon PETG-ESD @Snapmaker U1 base", + "inherits": "fdm_filament_petg", + "from": "system", + "filament_id": "GFL06", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "31" + ], + "fan_max_speed": [ + "20" + ], + "fan_min_speed": [ + "10" + ], + "filament_density": [ + "1.24" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "280" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "nozzle_temperature_range_high": [ + "290" + ], + "nozzle_temperature_range_low": [ + "250" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "95%" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "77" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_type": [ + "PETG" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1.json new file mode 100644 index 0000000000..f357b62272 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "name": "Fiberon PETG-ESD @Snapmaker U1", + "inherits": "Fiberon PETG-ESD @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL06_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "supertack_plate_temp": [ + "70" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + + "pressure_advance": [ + "0.04" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PPS-GF20 @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PPS-GF20 @Snapmaker U1 base.json new file mode 100644 index 0000000000..271ee8bb5d --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PPS-GF20 @Snapmaker U1 base.json @@ -0,0 +1,92 @@ +{ + "type": "filament", + "name": "Fiberon PPS-GF20 @Snapmaker U1 base", + "inherits": "fdm_filament_abs", + "from": "system", + "filament_id": "GFL73", + "instantiation": "false", + "additional_cooling_fan_speed": [ + "0" + ], + "bed_type": [ + "Cool Plate" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "cool_plate_temp": [ + "105" + ], + "cool_plate_temp_initial_layer": [ + "105" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "fan_cooling_layer_time": [ + "12" + ], + "fan_max_speed": [ + "10" + ], + "fan_min_speed": [ + "0" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.24" + ], + "filament_flow_ratio": [ + "1.03" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "105" + ], + "hot_plate_temp_initial_layer": [ + "105" + ], + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature_range_high": [ + "330" + ], + "nozzle_temperature_range_low": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "30" + ], + "temperature_vitrification": [ + "110" + ], + "textured_plate_temp": [ + "105" + ], + "textured_plate_temp_initial_layer": [ + "105" + ], + "filament_type": [ + "ABS" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PPS-GF20 @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PPS-GF20 @Snapmaker U1.json new file mode 100644 index 0000000000..ade0333b56 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PPS-GF20 @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Fiberon PPS-GF20 @Snapmaker U1", + "inherits": "Fiberon PPS-GF20 @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL73_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "description": " " +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @Snapmaker U1 base.json similarity index 51% rename from resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @U1 base.json rename to resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @Snapmaker U1 base.json index 3d78cca727..85f728d3f3 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @Snapmaker U1 base.json @@ -1,19 +1,31 @@ { "type": "filament", - "name": "Panchroma CoPE @U1 base", + "name": "Panchroma CoPE @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", "filament_id": "GFPM016", "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], "filament_cost": [ "19.99" ], "filament_density": [ "1.29" ], - "filament_flow_ratio": [ - "0.98" - ], "filament_max_volumetric_speed": [ "20" ], @@ -27,15 +39,33 @@ "230" ], "nozzle_temperature_range_high": [ - "240" + "230" ], "nozzle_temperature_range_low": [ - "190" + "200" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" ], "slow_down_layer_time": [ "4" ], + "slow_down_min_speed": [ + "5" + ], "temperature_vitrification": [ - "58" + "58.2" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" ] } diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @Snapmaker U1.json new file mode 100644 index 0000000000..e2fcea837e --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Panchroma CoPE @Snapmaker U1", + "renamed_from": "Panchroma CoPE @U1", + "inherits": "Panchroma CoPE @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM016_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @U1.json deleted file mode 100644 index 3a60d064ab..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @U1.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma CoPE @U1", - "inherits": "Panchroma CoPE @U1 base", - "from": "system", - "setting_id": "GFSPM016_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "20" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @Snapmaker U1 base.json new file mode 100644 index 0000000000..2695cbee54 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "Panchroma PLA @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFPM001", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "19.99" + ], + "filament_density": [ + "1.32" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "62.5" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @Snapmaker U1.json new file mode 100644 index 0000000000..333d625917 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @Snapmaker U1.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Panchroma PLA @Snapmaker U1", + "renamed_from": "Panchroma PLA @U1", + "inherits": "Panchroma PLA @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM001_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_wipe": [ + "0" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @U1 base.json deleted file mode 100644 index e7006dd19f..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @U1 base.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA @U1 base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "GFPM001", - "instantiation": "false", - "filament_cost": [ - "19.99" - ], - "filament_density": [ - "1.32" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_vendor": [ - "Polymaker" - ], - "filament_wipe": [ - "0" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "slow_down_layer_time": [ - "4" - ], - "temperature_vitrification": [ - "58" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @U1.json deleted file mode 100644 index b440f583e5..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @U1.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA @U1", - "inherits": "Panchroma PLA @U1 base", - "from": "system", - "setting_id": "GFSPM001_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @Snapmaker U1 base.json new file mode 100644 index 0000000000..5b4b8725c2 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "Panchroma PLA Celestial @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFPM008", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @Snapmaker U1.json new file mode 100644 index 0000000000..203dd24b91 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Panchroma PLA Celestial @Snapmaker U1", + "renamed_from": "Panchroma PLA Celestial @U1", + "inherits": "Panchroma PLA Celestial @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM008_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @U1 base.json deleted file mode 100644 index 3efe023bad..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @U1 base.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Celestial @U1 base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "GFPM008", - "instantiation": "false", - "filament_cost": [ - "29.99" - ], - "filament_density": [ - "1.17" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_vendor": [ - "Polymaker" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "slow_down_layer_time": [ - "4" - ], - "temperature_vitrification": [ - "61" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @U1.json deleted file mode 100644 index 6cd4aec9d0..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @U1.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Celestial @U1", - "inherits": "Panchroma PLA Celestial @U1 base", - "from": "system", - "setting_id": "GFSPM008_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @Snapmaker U1 base.json new file mode 100644 index 0000000000..6b14e2b663 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "Panchroma PLA Galaxy @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFPM007", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @Snapmaker U1.json new file mode 100644 index 0000000000..cd80f7c940 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Panchroma PLA Galaxy @Snapmaker U1", + "renamed_from": "Panchroma PLA Galaxy @U1", + "inherits": "Panchroma PLA Galaxy @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM007_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @U1 base.json deleted file mode 100644 index a9f649d8c4..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @U1 base.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Galaxy @U1 base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "GFPM007", - "instantiation": "false", - "filament_cost": [ - "29.99" - ], - "filament_density": [ - "1.17" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_vendor": [ - "Polymaker" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "slow_down_layer_time": [ - "4" - ], - "temperature_vitrification": [ - "61" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @U1.json deleted file mode 100644 index 1fdd654844..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @U1.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Galaxy @U1", - "inherits": "Panchroma PLA Galaxy @U1 base", - "from": "system", - "setting_id": "GFSPM007_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @Snapmaker U1 base.json new file mode 100644 index 0000000000..9e9936c4a4 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "Panchroma PLA Glow @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFPM010", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @Snapmaker U1.json new file mode 100644 index 0000000000..6b0e8a7736 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Panchroma PLA Glow @Snapmaker U1", + "renamed_from": "Panchroma PLA Glow @U1", + "inherits": "Panchroma PLA Glow @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM010_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @U1 base.json deleted file mode 100644 index bc4c05d449..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @U1 base.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Glow @U1 base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "GFPM010", - "instantiation": "false", - "filament_cost": [ - "29.99" - ], - "filament_density": [ - "1.17" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_vendor": [ - "Polymaker" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "slow_down_layer_time": [ - "4" - ], - "temperature_vitrification": [ - "61" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @U1.json deleted file mode 100644 index 28ce6ffeaa..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @U1.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Glow @U1", - "inherits": "Panchroma PLA Glow @U1 base", - "from": "system", - "setting_id": "GFSPM010_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @Snapmaker U1 base.json new file mode 100644 index 0000000000..0e996eb298 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "Panchroma PLA Luminous @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFPM011", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @Snapmaker U1.json new file mode 100644 index 0000000000..89bacd40d3 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Panchroma PLA Luminous @Snapmaker U1", + "renamed_from": "Panchroma PLA Luminous @U1", + "inherits": "Panchroma PLA Luminous @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM011_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @U1 base.json deleted file mode 100644 index 0a2f214514..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @U1 base.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Luminous @U1 base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "GFPM011", - "instantiation": "false", - "filament_cost": [ - "29.99" - ], - "filament_density": [ - "1.17" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_vendor": [ - "Polymaker" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "slow_down_layer_time": [ - "4" - ], - "temperature_vitrification": [ - "61" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @U1.json deleted file mode 100644 index c1e57c3682..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @U1.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Luminous @U1", - "inherits": "Panchroma PLA Luminous @U1 base", - "from": "system", - "setting_id": "GFSPM011_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @Snapmaker U1 base.json new file mode 100644 index 0000000000..83ae20eb10 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "Panchroma PLA Marble @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFPM003", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "21.99" + ], + "filament_density": [ + "1.37" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @Snapmaker U1.json new file mode 100644 index 0000000000..fe034fabdc --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Panchroma PLA Marble @Snapmaker U1", + "renamed_from": "Panchroma PLA Marble @U1", + "inherits": "Panchroma PLA Marble @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM003_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @U1 base.json deleted file mode 100644 index b241d93ba2..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @U1 base.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Marble @U1 base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "GFPM003", - "instantiation": "false", - "filament_cost": [ - "21.99" - ], - "filament_density": [ - "1.31" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "20" - ], - "filament_vendor": [ - "Polymaker" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "slow_down_layer_time": [ - "4" - ], - "temperature_vitrification": [ - "61" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @U1.json deleted file mode 100644 index 3d263cb16e..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @U1.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Marble @U1", - "inherits": "Panchroma PLA Marble @U1 base", - "from": "system", - "setting_id": "GFSPM003_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_max_volumetric_speed": [ - "20" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @Snapmaker U1 base.json new file mode 100644 index 0000000000..6d178bca81 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "Panchroma PLA Matte @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFPM002", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "21.99" + ], + "filament_density": [ + "1.37" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @Snapmaker U1.json new file mode 100644 index 0000000000..412825477f --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Panchroma PLA Matte @Snapmaker U1", + "renamed_from": "Panchroma PLA Matte @U1", + "inherits": "Panchroma PLA Matte @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM002_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @U1 base.json deleted file mode 100644 index f608c126a9..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @U1 base.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Matte @U1 base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "GFPM002", - "instantiation": "false", - "filament_cost": [ - "20.99" - ], - "filament_density": [ - "1.31" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "20" - ], - "filament_vendor": [ - "Polymaker" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "slow_down_layer_time": [ - "4" - ], - "temperature_vitrification": [ - "61" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @U1.json deleted file mode 100644 index 89de736551..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @U1.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Matte @U1", - "inherits": "Panchroma PLA Matte @U1 base", - "from": "system", - "setting_id": "GFSPM002_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_max_volumetric_speed": [ - "20" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @Snapmaker U1 base.json new file mode 100644 index 0000000000..28b2984832 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "Panchroma PLA Metallic @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFPM012", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @Snapmaker U1.json new file mode 100644 index 0000000000..12dc18fae0 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Panchroma PLA Metallic @Snapmaker U1", + "renamed_from": "Panchroma PLA Metallic @U1", + "inherits": "Panchroma PLA Metallic @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM012_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @U1 base.json deleted file mode 100644 index 33d18d4905..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @U1 base.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Metallic @U1 base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "GFPM012", - "instantiation": "false", - "filament_cost": [ - "29.99" - ], - "filament_density": [ - "1.17" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_vendor": [ - "Polymaker" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "slow_down_layer_time": [ - "4" - ], - "temperature_vitrification": [ - "61" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @U1.json deleted file mode 100644 index 3ac6a4fa38..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @U1.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Metallic @U1", - "inherits": "Panchroma PLA Metallic @U1 base", - "from": "system", - "setting_id": "GFSPM012_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @Snapmaker U1 base.json new file mode 100644 index 0000000000..eedf3117a8 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "Panchroma PLA Neon @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFPM013", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @Snapmaker U1.json new file mode 100644 index 0000000000..63c1e4f410 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Panchroma PLA Neon @Snapmaker U1", + "renamed_from": "Panchroma PLA Neon @U1", + "inherits": "Panchroma PLA Neon @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM013_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @U1 base.json deleted file mode 100644 index b982f2f862..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @U1 base.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Neon @U1 base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "GFPM013", - "instantiation": "false", - "filament_cost": [ - "24.99" - ], - "filament_density": [ - "1.17" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_vendor": [ - "Polymaker" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "slow_down_layer_time": [ - "4" - ], - "temperature_vitrification": [ - "61" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @U1.json deleted file mode 100644 index dcbc24ddd5..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @U1.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Neon @U1", - "inherits": "Panchroma PLA Neon @U1 base", - "from": "system", - "setting_id": "GFSPM013_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @Snapmaker U1 base.json new file mode 100644 index 0000000000..df011d8dd3 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "Panchroma PLA Satin @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFPM005", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "20.99" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "59" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @Snapmaker U1.json new file mode 100644 index 0000000000..4fc8a85ce5 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Panchroma PLA Satin @Snapmaker U1", + "renamed_from": "Panchroma PLA Satin @U1", + "inherits": "Panchroma PLA Satin @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM005_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @U1 base.json deleted file mode 100644 index 059527d14a..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @U1 base.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Satin @U1 base", - "renamed_from": "Panchroma PLA Stain @U1 base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "GFPM005", - "instantiation": "false", - "filament_cost": [ - "20.99" - ], - "filament_density": [ - "1.24" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "20" - ], - "filament_vendor": [ - "Polymaker" - ], - "nozzle_temperature": [ - "230" - ], - "nozzle_temperature_initial_layer": [ - "230" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "slow_down_layer_time": [ - "4" - ], - "temperature_vitrification": [ - "59" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @U1.json deleted file mode 100644 index b2a79e1390..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @U1.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Satin @U1", - "renamed_from": "Panchroma PLA Stain @U1", - "inherits": "Panchroma PLA Satin @U1 base", - "from": "system", - "setting_id": "GFSPM005_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "20" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @Snapmaker U1 base.json new file mode 100644 index 0000000000..daa8a6ffca --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @Snapmaker U1 base.json @@ -0,0 +1,68 @@ +{ + "type": "filament", + "name": "Panchroma PLA Silk @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFPM004", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "24.99" + ], + "filament_density": [ + "1.34" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "58.2" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @Snapmaker U1.json new file mode 100644 index 0000000000..6a6ed14fa2 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Panchroma PLA Silk @Snapmaker U1", + "renamed_from": "Panchroma PLA Silk @U1", + "inherits": "Panchroma PLA Silk @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM004_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @U1 base.json deleted file mode 100644 index d1d74e9a7d..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @U1 base.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Silk @U1 base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "GFPM004", - "instantiation": "false", - "filament_cost": [ - "24.99" - ], - "filament_density": [ - "1.31" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_vendor": [ - "Polymaker" - ], - "nozzle_temperature": [ - "230" - ], - "nozzle_temperature_initial_layer": [ - "230" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "slow_down_layer_time": [ - "4" - ], - "temperature_vitrification": [ - "58" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @U1.json deleted file mode 100644 index f9a4f18139..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @U1.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Silk @U1", - "inherits": "Panchroma PLA Silk @U1 base", - "from": "system", - "setting_id": "GFSPM004_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @Snapmaker U1 base.json new file mode 100644 index 0000000000..c2841b4572 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "Panchroma PLA Starlight @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFPM009", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @Snapmaker U1.json new file mode 100644 index 0000000000..7c2e1ab3c6 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Panchroma PLA Starlight @Snapmaker U1", + "renamed_from": "Panchroma PLA Starlight @U1", + "inherits": "Panchroma PLA Starlight @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM009_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @U1 base.json deleted file mode 100644 index 4eb9174b3f..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @U1 base.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Starlight @U1 base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "GFPM009", - "instantiation": "false", - "filament_cost": [ - "29.99" - ], - "filament_density": [ - "1.17" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_vendor": [ - "Polymaker" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "slow_down_layer_time": [ - "4" - ], - "temperature_vitrification": [ - "61" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @U1.json deleted file mode 100644 index 3dc0084fa1..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @U1.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Starlight @U1", - "inherits": "Panchroma PLA Starlight @U1 base", - "from": "system", - "setting_id": "GFSPM009_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @Snapmaker U1 base.json similarity index 91% rename from resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @U1 base.json rename to resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @Snapmaker U1 base.json index a486646d79..f0ccd46a65 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @Snapmaker U1 base.json @@ -1,6 +1,6 @@ { "type": "filament", - "name": "Panchroma PLA Temp Shift @U1 base", + "name": "Panchroma PLA Temp Shift @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", "filament_id": "GFPM015", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @Snapmaker U1.json similarity index 68% rename from resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @U1.json rename to resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @Snapmaker U1.json index cb5f9fe5f0..cbe8096274 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @Snapmaker U1.json @@ -1,7 +1,8 @@ { "type": "filament", - "name": "Panchroma PLA Temp Shift @U1", - "inherits": "Panchroma PLA Temp Shift @U1 base", + "name": "Panchroma PLA Temp Shift @Snapmaker U1", + "renamed_from": "Panchroma PLA Temp Shift @U1", + "inherits": "Panchroma PLA Temp Shift @Snapmaker U1 base", "from": "system", "setting_id": "GFSPM015_00", "instantiation": "true", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @Snapmaker U1 base.json new file mode 100644 index 0000000000..81d275cfaf --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "Panchroma PLA Translucent @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFPM006", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @Snapmaker U1.json new file mode 100644 index 0000000000..fed2fcd2bd --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Panchroma PLA Translucent @Snapmaker U1", + "renamed_from": "Panchroma PLA Translucent @U1", + "inherits": "Panchroma PLA Translucent @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM006_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @U1 base.json deleted file mode 100644 index 052424ed48..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @U1 base.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Translucent @U1 base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "GFPM006", - "instantiation": "false", - "filament_cost": [ - "24.99" - ], - "filament_density": [ - "1.17" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_vendor": [ - "Polymaker" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "slow_down_layer_time": [ - "4" - ], - "temperature_vitrification": [ - "61" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @U1.json deleted file mode 100644 index 31af9d2bb8..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @U1.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA Translucent @U1", - "inherits": "Panchroma PLA Translucent @U1 base", - "from": "system", - "setting_id": "GFSPM006_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @Snapmaker U1 base.json new file mode 100644 index 0000000000..7ac70319b2 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "Panchroma PLA UV Shift @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFPM014", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @Snapmaker U1.json new file mode 100644 index 0000000000..df6a376077 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Panchroma PLA UV Shift @Snapmaker U1", + "renamed_from": "Panchroma PLA UV Shift @U1", + "inherits": "Panchroma PLA UV Shift @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSPM014_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @U1 base.json deleted file mode 100644 index b2dd71f33e..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @U1 base.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA UV Shift @U1 base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "GFPM014", - "instantiation": "false", - "filament_cost": [ - "29.99" - ], - "filament_density": [ - "1.17" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_vendor": [ - "Polymaker" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "slow_down_layer_time": [ - "4" - ], - "temperature_vitrification": [ - "61" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @U1.json deleted file mode 100644 index 92b67abe04..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @U1.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "name": "Panchroma PLA UV Shift @U1", - "inherits": "Panchroma PLA UV Shift @U1 base", - "from": "system", - "setting_id": "GFSPM014_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite CosPLA @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite CosPLA @Snapmaker U1 base.json new file mode 100644 index 0000000000..228df29a92 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite CosPLA @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "PolyLite CosPLA @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL62", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "20.99" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "59" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite CosPLA @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite CosPLA @Snapmaker U1.json new file mode 100644 index 0000000000..4f3d7bb398 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite CosPLA @Snapmaker U1.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "PolyLite CosPLA @Snapmaker U1", + "inherits": "PolyLite CosPLA @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL62_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1 base.json new file mode 100644 index 0000000000..e8fdd834fe --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1 base.json @@ -0,0 +1,86 @@ +{ + "type": "filament", + "name": "PolyLite PETG @Snapmaker U1 base", + "inherits": "fdm_filament_petg", + "from": "system", + "filament_id": "GFG60", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "20" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "0" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.25" + ], + "filament_flow_ratio": [ + "0.92" + ], + "filament_max_volumetric_speed": [ + "7.5" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "260" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "95%" + ], + "slow_down_layer_time": [ + "6" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "81" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_type": [ + "PETG" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1.json index c904f01da0..eda129418d 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1.json @@ -1,117 +1,24 @@ { "type": "filament", "name": "PolyLite PETG @Snapmaker U1", + "inherits": "PolyLite PETG @Snapmaker U1 base", "from": "system", + "setting_id": "GFSG60_00", "instantiation": "true", - "cool_plate_temp": [ - "60" - ], - "eng_plate_temp": [ - "0" - ], - "hot_plate_temp": [ - "80" - ], - "textured_plate_temp": [ - "80" - ], - "cool_plate_temp_initial_layer": [ - "60" - ], - "eng_plate_temp_initial_layer": [ - "0" - ], - "hot_plate_temp_initial_layer": [ - "80" - ], - "textured_plate_temp_initial_layer": [ - "80" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "0.92" - ], - "fan_cooling_layer_time": [ - "20" - ], - "filament_cost": [ - "0" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "7.5" + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" ], "filament_minimal_purge_on_wipe_tower": [ "15" ], - "filament_vendor": [ - "Polymaker" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "40" - ], - "fan_min_speed": [ - "0" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "6" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "81" - ], - "filament_id": "PMPE04", - "nozzle_temperature_range_high": [ - "260" - ], - "nozzle_temperature_range_low": [ - "230" - ], "supertack_plate_temp": [ "70" ], "supertack_plate_temp_initial_layer": [ "70" ], - "setting_id": "PMPE04_U1", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], + "pressure_advance": [ "0.05" - ], - "inherits": "PolyLite PETG @Base" + ] } diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1 base.json new file mode 100644 index 0000000000..607649e569 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1 base.json @@ -0,0 +1,86 @@ +{ + "type": "filament", + "name": "PolyLite PETG Translucent @Snapmaker U1 base", + "inherits": "fdm_filament_petg", + "from": "system", + "filament_id": "GFL74", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "20" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "0" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.25" + ], + "filament_flow_ratio": [ + "0.92" + ], + "filament_max_volumetric_speed": [ + "7.5" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "260" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "95%" + ], + "slow_down_layer_time": [ + "6" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "81" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_type": [ + "PETG" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1.json new file mode 100644 index 0000000000..9007bf7507 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "name": "PolyLite PETG Translucent @Snapmaker U1", + "inherits": "PolyLite PETG Translucent @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL74_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "supertack_plate_temp": [ + "70" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + + "pressure_advance": [ + "0.05" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @Snapmaker U1 base.json new file mode 100644 index 0000000000..8f3b508aec --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "PolyLite PLA @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL00", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @Snapmaker U1.json new file mode 100644 index 0000000000..62eb0798cc --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "PolyLite PLA @Snapmaker U1", + "renamed_from": "PolyLite PLA @U1", + "inherits": "PolyLite PLA @Snapmaker U1 base", + "from": "system", + "setting_id": "6486836500", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @U1 base.json deleted file mode 100644 index 9401e09caf..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @U1 base.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "filament", - "from": "system", - "instantiation": "false", - "name": "PolyLite PLA @U1 base", - "filament_id": "13938660340", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.95" - ], - "filament_cost": [ - "90" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "default_filament_colour": [ - "" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @U1.json deleted file mode 100644 index d361109ae6..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @U1.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "filament", - "from": "system", - "instantiation": "true", - "name": "PolyLite PLA @U1", - "setting_id": "6486836500", - "inherits": "PolyLite PLA @U1 base", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Galaxy @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Galaxy @Snapmaker U1 base.json new file mode 100644 index 0000000000..fc925c8faa --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Galaxy @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "PolyLite PLA Galaxy @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL63", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Galaxy @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Galaxy @Snapmaker U1.json new file mode 100644 index 0000000000..adc7cb12d3 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Galaxy @Snapmaker U1.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "PolyLite PLA Galaxy @Snapmaker U1", + "inherits": "PolyLite PLA Galaxy @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL63_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Glow @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Glow @Snapmaker U1 base.json new file mode 100644 index 0000000000..cc74173c06 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Glow @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "PolyLite PLA Glow @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL64", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Glow @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Glow @Snapmaker U1.json new file mode 100644 index 0000000000..7bb103ab7e --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Glow @Snapmaker U1.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "PolyLite PLA Glow @Snapmaker U1", + "inherits": "PolyLite PLA Glow @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL64_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Luminous @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Luminous @Snapmaker U1 base.json new file mode 100644 index 0000000000..a472e0bec0 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Luminous @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "PolyLite PLA Luminous @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL65", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Luminous @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Luminous @Snapmaker U1.json new file mode 100644 index 0000000000..e9642afc2d --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Luminous @Snapmaker U1.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "PolyLite PLA Luminous @Snapmaker U1", + "inherits": "PolyLite PLA Luminous @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL65_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Neon @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Neon @Snapmaker U1 base.json new file mode 100644 index 0000000000..5638bec3ff --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Neon @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "PolyLite PLA Neon @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL66", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Neon @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Neon @Snapmaker U1.json new file mode 100644 index 0000000000..f40bfd290f --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Neon @Snapmaker U1.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "PolyLite PLA Neon @Snapmaker U1", + "inherits": "PolyLite PLA Neon @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL66_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @Snapmaker U1 base.json similarity index 92% rename from resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @U1 base.json rename to resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @Snapmaker U1 base.json index 9708883d0e..c32655ff83 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @Snapmaker U1 base.json @@ -1,6 +1,6 @@ { "type": "filament", - "name": "PolyLite PLA Pro @U1 base", + "name": "PolyLite PLA Pro @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", "filament_id": "GFPM019", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @Snapmaker U1.json similarity index 71% rename from resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @U1.json rename to resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @Snapmaker U1.json index 865b177f4e..acd8c7ff72 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @Snapmaker U1.json @@ -1,7 +1,8 @@ { "type": "filament", - "name": "PolyLite PLA Pro @U1", - "inherits": "PolyLite PLA Pro @U1 base", + "name": "PolyLite PLA Pro @Snapmaker U1", + "renamed_from": "PolyLite PLA Pro @U1", + "inherits": "PolyLite PLA Pro @Snapmaker U1 base", "from": "system", "setting_id": "GFSPM019_00", "instantiation": "true", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro Metallic @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro Metallic @Snapmaker U1 base.json new file mode 100644 index 0000000000..898460830f --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro Metallic @Snapmaker U1 base.json @@ -0,0 +1,80 @@ +{ + "type": "filament", + "name": "PolyLite PLA Pro Metallic @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL75", + "instantiation": "false", + "additional_cooling_fan_speed": [ + "0" + ], + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.22" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_for_layer_cooling": [ + "1", + "0", + "0", + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "62" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro Metallic @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro Metallic @Snapmaker U1.json new file mode 100644 index 0000000000..e02ed22fac --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro Metallic @Snapmaker U1.json @@ -0,0 +1,30 @@ +{ + "type": "filament", + "name": "PolyLite PLA Pro Metallic @Snapmaker U1", + "inherits": "PolyLite PLA Pro Metallic @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL75_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_end_gcode": [ + "; filament end gcode \n\n" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "description": " ", + "enable_overhang_bridge_fan": [ + "1", + "0", + "0", + "0" + ], + "enable_pressure_advance": [ + "0" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Starlight @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Starlight @Snapmaker U1 base.json new file mode 100644 index 0000000000..17e4d2816a --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Starlight @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "PolyLite PLA Starlight @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL67", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Starlight @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Starlight @Snapmaker U1.json new file mode 100644 index 0000000000..ffdfc293fb --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Starlight @Snapmaker U1.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "PolyLite PLA Starlight @Snapmaker U1", + "inherits": "PolyLite PLA Starlight @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL67_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Translucent @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Translucent @Snapmaker U1 base.json new file mode 100644 index 0000000000..29341f1c59 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Translucent @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "PolyLite PLA Translucent @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL68", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.17" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Translucent @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Translucent @Snapmaker U1.json new file mode 100644 index 0000000000..b4c83fcb94 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Translucent @Snapmaker U1.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "PolyLite PLA Translucent @Snapmaker U1", + "inherits": "PolyLite PLA Translucent @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL68_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @Snapmaker U1 base.json new file mode 100644 index 0000000000..533e781485 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "PolyTerra PLA @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL01", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "21.99" + ], + "filament_density": [ + "1.37" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @Snapmaker U1.json new file mode 100644 index 0000000000..1ab5d59bec --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @Snapmaker U1.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "PolyTerra PLA @Snapmaker U1", + "renamed_from": "PolyTerra PLA @U1", + "inherits": "PolyTerra PLA @Snapmaker U1 base", + "from": "system", + "setting_id": "12580059400", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @U1 base.json deleted file mode 100644 index e6a4ed5197..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @U1 base.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "filament", - "from": "system", - "instantiation": "false", - "name": "PolyTerra PLA @U1 base", - "filament_id": "37895926870", - "inherits": "fdm_filament_pla", - "filament_cost": [ - "80" - ], - "filament_density": [ - "1.31" - ], - "filament_max_volumetric_speed": [ - "14.4" - ], - "default_filament_colour": [ - "" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @U1.json deleted file mode 100644 index 2ae299695f..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @U1.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "filament", - "from": "system", - "instantiation": "true", - "name": "PolyTerra PLA @U1", - "setting_id": "12580059400", - "inherits": "PolyTerra PLA @U1 base", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA Marble @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA Marble @Snapmaker U1 base.json new file mode 100644 index 0000000000..141740a499 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA Marble @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "PolyTerra PLA Marble @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL69", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "21.99" + ], + "filament_density": [ + "1.37" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "61" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA Marble @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA Marble @Snapmaker U1.json new file mode 100644 index 0000000000..90261c8d46 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA Marble @Snapmaker U1.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "PolyTerra PLA Marble @Snapmaker U1", + "inherits": "PolyTerra PLA Marble @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL69_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA+ @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA+ @Snapmaker U1 base.json new file mode 100644 index 0000000000..19bec7d25b --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA+ @Snapmaker U1 base.json @@ -0,0 +1,65 @@ +{ + "type": "filament", + "name": "PolyTerra PLA+ @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL70", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_cost": [ + "20.99" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_speed": [ + "75" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "59" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA+ @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA+ @Snapmaker U1.json new file mode 100644 index 0000000000..ad807f99e1 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA+ @Snapmaker U1.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "PolyTerra PLA+ @Snapmaker U1", + "inherits": "PolyTerra PLA+ @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL70_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Snapmaker U1 base.json similarity index 59% rename from resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @U1 base.json rename to resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Snapmaker U1 base.json index 491e4e2fb2..b447be1455 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Snapmaker U1 base.json @@ -1,21 +1,39 @@ { "type": "filament", - "name": "Polymaker HT-PLA @U1 base", + "name": "Polymaker HT-PLA @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", "filament_id": "GFPM017", "instantiation": "false", + "additional_cooling_fan_speed": [ + "0" + ], + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], "filament_cost": [ - "26.99" + "0" ], "filament_density": [ "1.28" ], "filament_flow_ratio": [ - "0.98" + "0.96" ], "filament_max_volumetric_speed": [ - "20" + "15" ], "filament_vendor": [ "Polymaker" @@ -29,25 +47,31 @@ "nozzle_temperature": [ "220" ], - "nozzle_temperature_initial_layer": [ - "220" - ], "nozzle_temperature_range_high": [ "230" ], "nozzle_temperature_range_low": [ "210" ], + "overhang_fan_threshold": [ + "50%" + ], "slow_down_layer_time": [ - "4" + "6" + ], + "slow_down_min_speed": [ + "5" ], "temperature_vitrification": [ - "60" + "59.8" ], "textured_plate_temp": [ - "65" + "50" ], "textured_plate_temp_initial_layer": [ - "65" + "50" + ], + "filament_type": [ + "PLA" ] } diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Snapmaker U1.json index 9e8d24a5aa..1dc9da3491 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Snapmaker U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Snapmaker U1.json @@ -1,96 +1,15 @@ { "type": "filament", "name": "Polymaker HT-PLA @Snapmaker U1", + "renamed_from": "Polymaker HT-PLA @U1", + "inherits": "Polymaker HT-PLA @Snapmaker U1 base", "from": "system", + "setting_id": "GFSPM017_00", "instantiation": "true", - "cool_plate_temp": [ - "50" - ], - "eng_plate_temp": [ - "50" - ], - "hot_plate_temp": [ - "65" - ], - "textured_plate_temp": [ - "50" - ], - "cool_plate_temp_initial_layer": [ - "50" - ], - "eng_plate_temp_initial_layer": [ - "50" - ], - "hot_plate_temp_initial_layer": [ - "65" - ], - "textured_plate_temp_initial_layer": [ - "50" - ], - "overhang_fan_threshold": [ - "50%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "0.96" - ], - "filament_cost": [ - "0" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_vendor": [ - "Polymaker" - ], - "bed_type": [ - "Cool Plate" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "slow_down_min_speed": [ - "5" - ], - "slow_down_layer_time": [ - "6" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "additional_cooling_fan_speed": [ - "0" - ], - "setting_id": "PMPL02_U1", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" ], - "inherits": "Polymaker HT-PLA @Base", - "filament_id": "PMPL02" + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] } diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @U1.json deleted file mode 100644 index 77641bc103..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @U1.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "name": "Polymaker HT-PLA @U1", - "inherits": "Polymaker HT-PLA @U1 base", - "from": "system", - "setting_id": "GFSPM017_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "20" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Snapmaker U1 base.json similarity index 59% rename from resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @U1 base.json rename to resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Snapmaker U1 base.json index b3c7aaf23d..a98cb9b670 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Snapmaker U1 base.json @@ -1,21 +1,39 @@ { "type": "filament", - "name": "Polymaker HT-PLA-GF @U1 base", + "name": "Polymaker HT-PLA-GF @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", "filament_id": "GFPM018", "instantiation": "false", + "additional_cooling_fan_speed": [ + "0" + ], + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], "filament_cost": [ - "32.99" + "0" ], "filament_density": [ "1.34" ], "filament_flow_ratio": [ - "0.98" + "1.04" ], "filament_max_volumetric_speed": [ - "20" + "15" ], "filament_vendor": [ "Polymaker" @@ -29,25 +47,31 @@ "nozzle_temperature": [ "220" ], - "nozzle_temperature_initial_layer": [ - "220" - ], "nozzle_temperature_range_high": [ "230" ], "nozzle_temperature_range_low": [ "210" ], + "overhang_fan_threshold": [ + "50%" + ], "slow_down_layer_time": [ - "4" + "6" + ], + "slow_down_min_speed": [ + "5" ], "temperature_vitrification": [ - "60" + "59.76" ], "textured_plate_temp": [ - "65" + "50" ], "textured_plate_temp_initial_layer": [ - "65" + "50" + ], + "filament_type": [ + "PLA" ] } diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Snapmaker U1.json index d22198f225..5ef9570687 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Snapmaker U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Snapmaker U1.json @@ -1,96 +1,15 @@ { "type": "filament", "name": "Polymaker HT-PLA-GF @Snapmaker U1", + "renamed_from": "Polymaker HT-PLA-GF @U1", + "inherits": "Polymaker HT-PLA-GF @Snapmaker U1 base", "from": "system", + "setting_id": "GFSPM018_00", "instantiation": "true", - "cool_plate_temp": [ - "50" - ], - "eng_plate_temp": [ - "50" - ], - "hot_plate_temp": [ - "65" - ], - "textured_plate_temp": [ - "50" - ], - "cool_plate_temp_initial_layer": [ - "50" - ], - "eng_plate_temp_initial_layer": [ - "50" - ], - "hot_plate_temp_initial_layer": [ - "65" - ], - "textured_plate_temp_initial_layer": [ - "50" - ], - "overhang_fan_threshold": [ - "50%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1.04" - ], - "filament_cost": [ - "0" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_vendor": [ - "Polymaker" - ], - "bed_type": [ - "Cool Plate" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "slow_down_min_speed": [ - "5" - ], - "slow_down_layer_time": [ - "6" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "additional_cooling_fan_speed": [ - "0" - ], - "setting_id": "PMPL01_U1", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" ], - "inherits": "Polymaker HT-PLA-GF @Base", - "filament_id": "PMPL01" + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] } diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @U1.json deleted file mode 100644 index 21f6d9c7ef..0000000000 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @U1.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "name": "Polymaker HT-PLA-GF @U1", - "inherits": "Polymaker HT-PLA-GF @U1 base", - "from": "system", - "setting_id": "GFSPM018_00", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "20" - ], - "slow_down_layer_time": [ - "4" - ] -} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Snapmaker U1 base.json new file mode 100644 index 0000000000..2209516118 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Snapmaker U1 base.json @@ -0,0 +1,83 @@ +{ + "type": "filament", + "name": "Polymaker PETG @Snapmaker U1 base", + "inherits": "fdm_filament_petg", + "from": "system", + "filament_id": "GFL76", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "fan_max_speed": [ + "10" + ], + "fan_min_speed": [ + "50" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.3" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "260" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "95%" + ], + "slow_down_layer_time": [ + "6" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "71.24" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_type": [ + "PETG" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Snapmaker U1.json index cca59b8c23..4b8ff8daf2 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Snapmaker U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Snapmaker U1.json @@ -1,111 +1,20 @@ { "type": "filament", "name": "Polymaker PETG @Snapmaker U1", + "inherits": "Polymaker PETG @Snapmaker U1 base", "from": "system", + "setting_id": "GFSL76_00", "instantiation": "true", - "cool_plate_temp": [ - "60" - ], - "eng_plate_temp": [ - "0" - ], - "hot_plate_temp": [ - "80" - ], - "textured_plate_temp": [ - "80" - ], - "cool_plate_temp_initial_layer": [ - "60" - ], - "eng_plate_temp_initial_layer": [ - "0" - ], - "hot_plate_temp_initial_layer": [ - "80" - ], - "textured_plate_temp_initial_layer": [ - "80" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "0.96" - ], - "filament_cost": [ - "0" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "15" + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" ], "filament_minimal_purge_on_wipe_tower": [ "15" ], - "filament_vendor": [ - "Polymaker" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "10" - ], - "fan_min_speed": [ - "50" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "6" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "71" - ], - "filament_id": "PMPE01", - "nozzle_temperature_range_high": [ - "260" - ], - "nozzle_temperature_range_low": [ - "240" - ], "supertack_plate_temp": [ "70" ], "supertack_plate_temp_initial_layer": [ "70" - ], - "setting_id": "PMPE01_U1", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "inherits": "Polymaker PETG @Base" + ] } diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG Galaxy @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG Galaxy @Snapmaker U1 base.json new file mode 100644 index 0000000000..5e32b79620 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG Galaxy @Snapmaker U1 base.json @@ -0,0 +1,83 @@ +{ + "type": "filament", + "name": "Polymaker PETG Galaxy @Snapmaker U1 base", + "inherits": "fdm_filament_petg", + "from": "system", + "filament_id": "GFL77", + "instantiation": "false", + "bed_type": [ + "Cool Plate" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "fan_max_speed": [ + "10" + ], + "fan_min_speed": [ + "50" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.3" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "260" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "95%" + ], + "slow_down_layer_time": [ + "6" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "71.24" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_type": [ + "PETG" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG Galaxy @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG Galaxy @Snapmaker U1.json new file mode 100644 index 0000000000..47b67bb9ed --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG Galaxy @Snapmaker U1.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "name": "Polymaker PETG Galaxy @Snapmaker U1", + "inherits": "Polymaker PETG Galaxy @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL77_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "supertack_plate_temp": [ + "70" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA @Snapmaker U1 base.json new file mode 100644 index 0000000000..ebd4e5b11a --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA @Snapmaker U1 base.json @@ -0,0 +1,74 @@ +{ + "type": "filament", + "name": "Polymaker PLA @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL78", + "instantiation": "false", + "additional_cooling_fan_speed": [ + "0" + ], + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.23" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "5" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "59" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA @Snapmaker U1.json new file mode 100644 index 0000000000..d20e23922f --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA @Snapmaker U1.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "name": "Polymaker PLA @Snapmaker U1", + "inherits": "Polymaker PLA @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL78_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_extruder_variant": [ + "Direct Drive Standard" + ], + "pressure_advance": [ + "0.05" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Snapmaker U1 base.json new file mode 100644 index 0000000000..a15908f18e --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Snapmaker U1 base.json @@ -0,0 +1,74 @@ +{ + "type": "filament", + "name": "Polymaker PLA Pro @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL79", + "instantiation": "false", + "additional_cooling_fan_speed": [ + "0" + ], + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.23" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "6" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "55" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Snapmaker U1.json index 23d7dfad46..2cb55a8ee5 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Snapmaker U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Snapmaker U1.json @@ -1,96 +1,14 @@ { "type": "filament", "name": "Polymaker PLA Pro @Snapmaker U1", + "inherits": "Polymaker PLA Pro @Snapmaker U1 base", "from": "system", + "setting_id": "GFSL79_00", "instantiation": "true", - "cool_plate_temp": [ - "50" - ], - "eng_plate_temp": [ - "50" - ], - "hot_plate_temp": [ - "65" - ], - "textured_plate_temp": [ - "50" - ], - "cool_plate_temp_initial_layer": [ - "50" - ], - "eng_plate_temp_initial_layer": [ - "50" - ], - "hot_plate_temp_initial_layer": [ - "65" - ], - "textured_plate_temp_initial_layer": [ - "50" - ], - "overhang_fan_threshold": [ - "50%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "0.96" - ], - "filament_cost": [ - "0" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_vendor": [ - "Polymaker" - ], - "bed_type": [ - "Cool Plate" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "slow_down_min_speed": [ - "5" - ], - "slow_down_layer_time": [ - "6" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "61" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "additional_cooling_fan_speed": [ - "0" - ], - "setting_id": "PMPL03_U1", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" ], - "inherits": "Polymaker PLA Pro @Base", - "filament_id": "PMPL03" + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] } diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro Metallic @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro Metallic @Snapmaker U1 base.json new file mode 100644 index 0000000000..9e2fc3f4e5 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro Metallic @Snapmaker U1 base.json @@ -0,0 +1,74 @@ +{ + "type": "filament", + "name": "Polymaker PLA Pro Metallic @Snapmaker U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL80", + "instantiation": "false", + "additional_cooling_fan_speed": [ + "0" + ], + "bed_type": [ + "Cool Plate" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.23" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "6" + ], + "slow_down_min_speed": [ + "5" + ], + "temperature_vitrification": [ + "55" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_type": [ + "PLA" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro Metallic @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro Metallic @Snapmaker U1.json new file mode 100644 index 0000000000..463c0f2e81 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro Metallic @Snapmaker U1.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Polymaker PLA Pro Metallic @Snapmaker U1", + "inherits": "Polymaker PLA Pro Metallic @Snapmaker U1 base", + "from": "system", + "setting_id": "GFSL80_00", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ] +} diff --git a/resources/profiles/Z-Bolt.json b/resources/profiles/Z-Bolt.json index c38063472e..0c9d52be1f 100644 --- a/resources/profiles/Z-Bolt.json +++ b/resources/profiles/Z-Bolt.json @@ -148,8 +148,20 @@ "sub_path": "process/0.16mm Standard @Z-Bolt 0.6 nozzle.json" }, { - "name": "0.20mm High Quality @Z-Bolt 0.6 nozzle", - "sub_path": "process/0.20mm High Quality @Z-Bolt 0.6 nozzle.json" + "name": "0.16mm Standard @Z-Bolt S300 0.6 nozzle", + "sub_path": "process/0.16mm Standard @Z-Bolt S300 0.6 nozzle.json" + }, + { + "name": "0.16mm Standard @Z-Bolt S400 0.6 nozzle", + "sub_path": "process/0.16mm Standard @Z-Bolt S400 0.6 nozzle.json" + }, + { + "name": "0.16mm Standard @Z-Bolt S600 0.6 nozzle", + "sub_path": "process/0.16mm Standard @Z-Bolt S600 0.6 nozzle.json" + }, + { + "name": "0.16mm Standard @Z-Bolt S800 0.6 nozzle", + "sub_path": "process/0.16mm Standard @Z-Bolt S800 0.6 nozzle.json" }, { "name": "0.20mm Standard @Z-Bolt 0.4 nozzle", @@ -159,10 +171,30 @@ "name": "0.20mm Strength @Z-Bolt 0.4 nozzle", "sub_path": "process/0.20mm Strength @Z-Bolt 0.4 nozzle.json" }, + { + "name": "0.20mm High Quality @Z-Bolt 0.6 nozzle", + "sub_path": "process/0.20mm High Quality @Z-Bolt 0.6 nozzle.json" + }, { "name": "0.20mm Standard @Z-Bolt 0.6 nozzle", "sub_path": "process/0.20mm Standard @Z-Bolt 0.6 nozzle.json" }, + { + "name": "0.20mm Standard @Z-Bolt S300 0.6 nozzle", + "sub_path": "process/0.20mm Standard @Z-Bolt S300 0.6 nozzle.json" + }, + { + "name": "0.20mm Standard @Z-Bolt S400 0.6 nozzle", + "sub_path": "process/0.20mm Standard @Z-Bolt S400 0.6 nozzle.json" + }, + { + "name": "0.20mm Standard @Z-Bolt S600 0.6 nozzle", + "sub_path": "process/0.20mm Standard @Z-Bolt S600 0.6 nozzle.json" + }, + { + "name": "0.20mm Standard @Z-Bolt S800 0.6 nozzle", + "sub_path": "process/0.20mm Standard @Z-Bolt S800 0.6 nozzle.json" + }, { "name": "0.24mm Draft @Z-Bolt 0.4 nozzle", "sub_path": "process/0.24mm Draft @Z-Bolt 0.4 nozzle.json" @@ -171,10 +203,42 @@ "name": "0.24mm Standard @Z-Bolt 0.6 nozzle", "sub_path": "process/0.24mm Standard @Z-Bolt 0.6 nozzle.json" }, + { + "name": "0.24mm Standard @Z-Bolt S300 0.6 nozzle", + "sub_path": "process/0.24mm Standard @Z-Bolt S300 0.6 nozzle.json" + }, + { + "name": "0.24mm Standard @Z-Bolt S400 0.6 nozzle", + "sub_path": "process/0.24mm Standard @Z-Bolt S400 0.6 nozzle.json" + }, + { + "name": "0.24mm Standard @Z-Bolt S600 0.6 nozzle", + "sub_path": "process/0.24mm Standard @Z-Bolt S600 0.6 nozzle.json" + }, + { + "name": "0.24mm Standard @Z-Bolt S800 0.6 nozzle", + "sub_path": "process/0.24mm Standard @Z-Bolt S800 0.6 nozzle.json" + }, { "name": "0.24mm Standard @Z-Bolt 0.8 nozzle", "sub_path": "process/0.24mm Standard @Z-Bolt 0.8 nozzle.json" }, + { + "name": "0.24mm Standard @Z-Bolt S300 0.8 nozzle", + "sub_path": "process/0.24mm Standard @Z-Bolt S300 0.8 nozzle.json" + }, + { + "name": "0.24mm Standard @Z-Bolt S400 0.8 nozzle", + "sub_path": "process/0.24mm Standard @Z-Bolt S400 0.8 nozzle.json" + }, + { + "name": "0.24mm Standard @Z-Bolt S600 0.8 nozzle", + "sub_path": "process/0.24mm Standard @Z-Bolt S600 0.8 nozzle.json" + }, + { + "name": "0.24mm Standard @Z-Bolt S800 0.8 nozzle", + "sub_path": "process/0.24mm Standard @Z-Bolt S800 0.8 nozzle.json" + }, { "name": "0.28mm Extra Draft @Z-Bolt 0.4 nozzle", "sub_path": "process/0.28mm Extra Draft @Z-Bolt 0.4 nozzle.json" @@ -183,29 +247,141 @@ "name": "0.30mm Standard @Z-Bolt 0.6 nozzle", "sub_path": "process/0.30mm Standard @Z-Bolt 0.6 nozzle.json" }, + { + "name": "0.30mm Standard @Z-Bolt S300 0.6 nozzle", + "sub_path": "process/0.30mm Standard @Z-Bolt S300 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Z-Bolt S400 0.6 nozzle", + "sub_path": "process/0.30mm Standard @Z-Bolt S400 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Z-Bolt S600 0.6 nozzle", + "sub_path": "process/0.30mm Standard @Z-Bolt S600 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Z-Bolt S800 0.6 nozzle", + "sub_path": "process/0.30mm Standard @Z-Bolt S800 0.6 nozzle.json" + }, { "name": "0.30mm Strength @Z-Bolt 0.6 nozzle", "sub_path": "process/0.30mm Strength @Z-Bolt 0.6 nozzle.json" }, + { + "name": "0.30mm Strength @Z-Bolt S300 0.6 nozzle", + "sub_path": "process/0.30mm Strength @Z-Bolt S300 0.6 nozzle.json" + }, + { + "name": "0.30mm Strength @Z-Bolt S400 0.6 nozzle", + "sub_path": "process/0.30mm Strength @Z-Bolt S400 0.6 nozzle.json" + }, + { + "name": "0.30mm Strength @Z-Bolt S600 0.6 nozzle", + "sub_path": "process/0.30mm Strength @Z-Bolt S600 0.6 nozzle.json" + }, + { + "name": "0.30mm Strength @Z-Bolt S800 0.6 nozzle", + "sub_path": "process/0.30mm Strength @Z-Bolt S800 0.6 nozzle.json" + }, { "name": "0.32mm Standard @Z-Bolt 0.8 nozzle", "sub_path": "process/0.32mm Standard @Z-Bolt 0.8 nozzle.json" }, + { + "name": "0.32mm Standard @Z-Bolt S300 0.8 nozzle", + "sub_path": "process/0.32mm Standard @Z-Bolt S300 0.8 nozzle.json" + }, + { + "name": "0.32mm Standard @Z-Bolt S400 0.8 nozzle", + "sub_path": "process/0.32mm Standard @Z-Bolt S400 0.8 nozzle.json" + }, + { + "name": "0.32mm Standard @Z-Bolt S600 0.8 nozzle", + "sub_path": "process/0.32mm Standard @Z-Bolt S600 0.8 nozzle.json" + }, + { + "name": "0.32mm Standard @Z-Bolt S800 0.8 nozzle", + "sub_path": "process/0.32mm Standard @Z-Bolt S800 0.8 nozzle.json" + }, { "name": "0.36mm Standard @Z-Bolt 0.6 nozzle", "sub_path": "process/0.36mm Standard @Z-Bolt 0.6 nozzle.json" }, + { + "name": "0.36mm Standard @Z-Bolt S300 0.6 nozzle", + "sub_path": "process/0.36mm Standard @Z-Bolt S300 0.6 nozzle.json" + }, + { + "name": "0.36mm Standard @Z-Bolt S400 0.6 nozzle", + "sub_path": "process/0.36mm Standard @Z-Bolt S400 0.6 nozzle.json" + }, + { + "name": "0.36mm Standard @Z-Bolt S600 0.6 nozzle", + "sub_path": "process/0.36mm Standard @Z-Bolt S600 0.6 nozzle.json" + }, + { + "name": "0.36mm Standard @Z-Bolt S800 0.6 nozzle", + "sub_path": "process/0.36mm Standard @Z-Bolt S800 0.6 nozzle.json" + }, { "name": "0.40mm Standard @Z-Bolt 0.8 nozzle", "sub_path": "process/0.40mm Standard @Z-Bolt 0.8 nozzle.json" }, + { + "name": "0.40mm Standard @Z-Bolt S300 0.8 nozzle", + "sub_path": "process/0.40mm Standard @Z-Bolt S300 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Z-Bolt S400 0.8 nozzle", + "sub_path": "process/0.40mm Standard @Z-Bolt S400 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Z-Bolt S600 0.8 nozzle", + "sub_path": "process/0.40mm Standard @Z-Bolt S600 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Z-Bolt S800 0.8 nozzle", + "sub_path": "process/0.40mm Standard @Z-Bolt S800 0.8 nozzle.json" + }, { "name": "0.42mm Standard @Z-Bolt 0.6 nozzle", "sub_path": "process/0.42mm Standard @Z-Bolt 0.6 nozzle.json" }, + { + "name": "0.42mm Standard @Z-Bolt S300 0.6 nozzle", + "sub_path": "process/0.42mm Standard @Z-Bolt S300 0.6 nozzle.json" + }, + { + "name": "0.42mm Standard @Z-Bolt S400 0.6 nozzle", + "sub_path": "process/0.42mm Standard @Z-Bolt S400 0.6 nozzle.json" + }, + { + "name": "0.42mm Standard @Z-Bolt S600 0.6 nozzle", + "sub_path": "process/0.42mm Standard @Z-Bolt S600 0.6 nozzle.json" + }, + { + "name": "0.42mm Standard @Z-Bolt S800 0.6 nozzle", + "sub_path": "process/0.42mm Standard @Z-Bolt S800 0.6 nozzle.json" + }, { "name": "0.48mm Standard @Z-Bolt 0.8 nozzle", "sub_path": "process/0.48mm Standard @Z-Bolt 0.8 nozzle.json" + }, + { + "name": "0.48mm Standard @Z-Bolt S300 0.8 nozzle", + "sub_path": "process/0.48mm Standard @Z-Bolt S300 0.8 nozzle.json" + }, + { + "name": "0.48mm Standard @Z-Bolt S400 0.8 nozzle", + "sub_path": "process/0.48mm Standard @Z-Bolt S400 0.8 nozzle.json" + }, + { + "name": "0.48mm Standard @Z-Bolt S600 0.8 nozzle", + "sub_path": "process/0.48mm Standard @Z-Bolt S600 0.8 nozzle.json" + }, + { + "name": "0.48mm Standard @Z-Bolt S800 0.8 nozzle", + "sub_path": "process/0.48mm Standard @Z-Bolt S800 0.8 nozzle.json" } ], "filament_list": [ @@ -213,6 +389,18 @@ "name": "Generic ABS @Z-Bolt Base", "sub_path": "filament/Generic ABS @Z-Bolt Base.json" }, + { + "name": "Generic PA @Z-Bolt Base", + "sub_path": "filament/Generic PA @Z-Bolt Base.json" + }, + { + "name": "Generic PETG @Z-Bolt Base", + "sub_path": "filament/Generic PETG @Z-Bolt Base.json" + }, + { + "name": "Generic PLA @Z-Bolt Base", + "sub_path": "filament/Generic PLA @Z-Bolt Base.json" + }, { "name": "Generic ABS @Z-Bolt 0.4 nozzle", "sub_path": "filament/Generic ABS @Z-Bolt 0.4 nozzle.json" @@ -226,8 +414,8 @@ "sub_path": "filament/Generic ABS @Z-Bolt 0.8 nozzle.json" }, { - "name": "Generic PA @Z-Bolt Base", - "sub_path": "filament/Generic PA @Z-Bolt Base.json" + "name": "Generic ABS HT @Z-Bolt Base", + "sub_path": "filament/Generic ABS HT @Z-Bolt Base.json" }, { "name": "Generic PA @Z-Bolt 0.4 nozzle", @@ -241,10 +429,6 @@ "name": "Generic PA @Z-Bolt 0.8 nozzle", "sub_path": "filament/Generic PA @Z-Bolt 0.8 nozzle.json" }, - { - "name": "Generic PETG @Z-Bolt Base", - "sub_path": "filament/Generic PETG @Z-Bolt Base.json" - }, { "name": "Generic PETG @Z-Bolt 0.4 nozzle", "sub_path": "filament/Generic PETG @Z-Bolt 0.4 nozzle.json" @@ -257,10 +441,6 @@ "name": "Generic PETG @Z-Bolt 0.8 nozzle", "sub_path": "filament/Generic PETG @Z-Bolt 0.8 nozzle.json" }, - { - "name": "Generic PLA @Z-Bolt Base", - "sub_path": "filament/Generic PLA @Z-Bolt Base.json" - }, { "name": "Generic PLA @Z-Bolt 0.4 nozzle", "sub_path": "filament/Generic PLA @Z-Bolt 0.4 nozzle.json" @@ -273,10 +453,6 @@ "name": "Generic PLA @Z-Bolt 0.8 nozzle", "sub_path": "filament/Generic PLA @Z-Bolt 0.8 nozzle.json" }, - { - "name": "Generic ABS HT @Z-Bolt Base", - "sub_path": "filament/Generic ABS HT @Z-Bolt Base.json" - }, { "name": "Generic ABS HT @Z-Bolt 0.4 nozzle", "sub_path": "filament/Generic ABS HT @Z-Bolt 0.4 nozzle.json" diff --git a/resources/profiles/re3D.json b/resources/profiles/re3D.json index b081d3d6d9..7ab68290f2 100644 --- a/resources/profiles/re3D.json +++ b/resources/profiles/re3D.json @@ -50,25 +50,25 @@ "name": "0.26 Standard", "sub_path": "process/0.26mm Standard @re3D fdm 0.4.json" }, - { - "name": "0.32 Draft", - "sub_path": "process/0.32mm Draft @re3D fdm 0.4.json" - }, { "name": "0.3 Fine", "sub_path": "process/0.3mm Fine @re3D fdm 0.8.json" }, + { + "name": "0.32 Draft", + "sub_path": "process/0.32mm Draft @re3D fdm 0.4.json" + }, { "name": "0.4 Standard", "sub_path": "process/0.4mm Draft @re3D fdm 0.8.json" }, - { - "name": "1.0 Standard", - "sub_path": "process/1.0mm Standard @re3D fgf 1.75.json" - }, { "name": "0.6 Standard", "sub_path": "process/0.6mm Standard @re3D fgf 0.8.json" + }, + { + "name": "1.0 Standard", + "sub_path": "process/1.0mm Standard @re3D fgf 1.75.json" } ], "filament_list": [ @@ -77,53 +77,21 @@ "sub_path": "filament/fdm_filament_common.json" }, { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" + "name": "fdm_filament_pc", + "sub_path": "filament/fdm_filament_pc.json" }, { "name": "fdm_filament_pet", "sub_path": "filament/fdm_filament_pet.json" }, { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "re3D PLA", - "sub_path": "filament/re3D PLA.json" - }, - { - "name": "re3D PETG", - "sub_path": "filament/re3D PETG.json" + "name": "fdm_filament_pla", + "sub_path": "filament/fdm_filament_pla.json" }, { "name": "re3D PC", "sub_path": "filament/re3D PC.json" }, - { - "name": "re3D Greengate rPETG", - "sub_path": "filament/re3D Greengate rPETG.json" - }, - { - "name": "re3D rPP", - "sub_path": "filament/re3D rPP.json" - }, - { - "name": "re3D PLA @0.4 nozzle", - "sub_path": "filament/re3D PLA @0.4 nozzle.json" - }, - { - "name": "re3D PLA @0.8 nozzle", - "sub_path": "filament/re3D PLA @0.8 nozzle.json" - }, - { - "name": "re3D PETG @0.4 nozzle", - "sub_path": "filament/re3D PETG @0.4 nozzle.json" - }, - { - "name": "re3D PETG @0.8 nozzle", - "sub_path": "filament/re3D PETG @0.8 nozzle.json" - }, { "name": "re3D PC @0.4 nozzle", "sub_path": "filament/re3D PC @0.4 nozzle.json" @@ -132,6 +100,10 @@ "name": "re3D PC @0.8 nozzle", "sub_path": "filament/re3D PC @0.8 nozzle.json" }, + { + "name": "re3D Greengate rPETG", + "sub_path": "filament/re3D Greengate rPETG.json" + }, { "name": "re3D Greengate rPETG @0.8 nozzle", "sub_path": "filament/re3D Greengate rPETG @0.8 nozzle.json" @@ -140,6 +112,22 @@ "name": "re3D Greengate rPETG @1.75 nozzle", "sub_path": "filament/re3D Greengate rPETG @1.75 nozzle.json" }, + { + "name": "re3D PETG", + "sub_path": "filament/re3D PETG.json" + }, + { + "name": "re3D PETG @0.4 nozzle", + "sub_path": "filament/re3D PETG @0.4 nozzle.json" + }, + { + "name": "re3D PETG @0.8 nozzle", + "sub_path": "filament/re3D PETG @0.8 nozzle.json" + }, + { + "name": "re3D rPP", + "sub_path": "filament/re3D rPP.json" + }, { "name": "re3D rPP @0.8 nozzle", "sub_path": "filament/re3D rPP @0.8 nozzle.json" @@ -147,6 +135,18 @@ { "name": "re3D rPP @1.75 nozzle", "sub_path": "filament/re3D rPP @1.75 nozzle.json" + }, + { + "name": "re3D PLA", + "sub_path": "filament/re3D PLA.json" + }, + { + "name": "re3D PLA @0.4 nozzle", + "sub_path": "filament/re3D PLA @0.4 nozzle.json" + }, + { + "name": "re3D PLA @0.8 nozzle", + "sub_path": "filament/re3D PLA @0.8 nozzle.json" } ], "machine_list": [ @@ -178,6 +178,14 @@ "name": "re3D Gigabot 4 XLT 0.8 nozzle", "sub_path": "machine/re3D Gigabot 4 XLT 0.8 nozzle.json" }, + { + "name": "re3D Terabot 4 0.4 nozzle", + "sub_path": "machine/re3D Terabot 4 0.4 nozzle.json" + }, + { + "name": "re3D Terabot 4 0.8 nozzle", + "sub_path": "machine/re3D Terabot 4 0.8 nozzle.json" + }, { "name": "re3D GigabotX 2 0.8 nozzle", "sub_path": "machine/re3D GigabotX 2 0.8 nozzle.json" @@ -194,14 +202,6 @@ "name": "re3D GigabotX 2 XLT 1.75 nozzle", "sub_path": "machine/re3D GigabotX 2 XLT 1.75 nozzle.json" }, - { - "name": "re3D Terabot 4 0.4 nozzle", - "sub_path": "machine/re3D Terabot 4 0.4 nozzle.json" - }, - { - "name": "re3D Terabot 4 0.8 nozzle", - "sub_path": "machine/re3D Terabot 4 0.8 nozzle.json" - }, { "name": "re3D TerabotX 2 0.8 nozzle", "sub_path": "machine/re3D TerabotX 2 0.8 nozzle.json" @@ -211,4 +211,4 @@ "sub_path": "machine/re3D TerabotX 2 1.75 nozzle.json" } ] -} \ No newline at end of file +} From 6b55e324c9ed97f5006899dbc3824b1c979b66dd Mon Sep 17 00:00:00 2001 From: Ian Chua Date: Fri, 29 May 2026 15:49:36 +0800 Subject: [PATCH 13/18] fix: temporary wxstring going out of scope causing crash on linux (#13925) --- src/slic3r/GUI/GUI_App.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 082eb12b6a..8a1d317b97 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -2981,7 +2981,11 @@ bool GUI_App::on_init_inner() } #endif - if (scrn) { scrn->SetText(_L("Creating main window") + dots); wxYield(); } + if (scrn) { + const auto scrn_txt = _L("Creating main window") + dots; + scrn->SetText(scrn_txt); + wxYield(); + } BOOST_LOG_TRIVIAL(info) << "create the main window"; mainframe = new MainFrame(); // hide settings tabs after first Layout From 83946f3df8bd3ec69fb3223ce2346df7a1420abc Mon Sep 17 00:00:00 2001 From: Kiss Lorand <50251547+kisslorand@users.noreply.github.com> Date: Sat, 30 May 2026 00:09:47 +0300 Subject: [PATCH 14/18] Fix division by zero in organic tree support generation (#13936) --- src/libslic3r/Support/TreeSupport3D.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/Support/TreeSupport3D.cpp b/src/libslic3r/Support/TreeSupport3D.cpp index 9b6758b8c2..8c3a66398a 100644 --- a/src/libslic3r/Support/TreeSupport3D.cpp +++ b/src/libslic3r/Support/TreeSupport3D.cpp @@ -124,6 +124,9 @@ static std::vector>> group_me { std::vector>> grouped_meshes; + // Orca: Recompute static mesh-group state for this support generation pass. + TreeSupportSettings::zero_top_z_gap = false; + //FIXME this is ugly, it does not belong here. for (size_t object_id : print_object_ids) { const PrintObject &print_object = *print.get_object(object_id); @@ -1604,9 +1607,14 @@ static Point move_inside_if_outside(const Polygons &polygons, Point from, int di if (settings.move) { increased = relevant_offset; if (overspeed > 0) { - const coord_t safe_movement_distance = + coord_t safe_movement_distance = (current_elem.use_min_xy_dist ? config.xy_min_distance : config.xy_distance) + (std::min(config.z_distance_top_layers, config.z_distance_bottom_layers) > 0 ? config.min_feature_size : 0); + // Orca: + // safe_movement_distance is used as the safe_offset_inc() step, so keep it non-zero + // to preserve branch movement with zero-clearance support settings. + if (safe_movement_distance == 0) + safe_movement_distance = scaled(0.1); // The difference to ensure that the result not only conforms to wall_restriction, but collision/avoidance is done later. // The higher last_safe_step_movement_distance comes exactly from the fact that the collision will be subtracted later. increased = safe_offset_inc(increased, overspeed, volumes.getWallRestriction(support_element_collision_radius(config, parent.state), layer_idx, parent.state.use_min_xy_dist), @@ -1817,9 +1825,15 @@ static void increase_areas_one_layer( * layer z-1:dddddxxxxxxxxxx * For more detailed visualisation see calculateWallRestrictions */ - const coord_t safe_movement_distance = + coord_t safe_movement_distance = (elem.use_min_xy_dist ? config.xy_min_distance : config.xy_distance) + (std::min(config.z_distance_top_layers, config.z_distance_bottom_layers) > 0 ? config.min_feature_size : 0); + + // safe_movement_distance is used as a divisor and as the safe_offset_inc() step, + // so keep it non-zero to avoid division by zero and preserve branch movement. + if (safe_movement_distance == 0) + safe_movement_distance = scaled(0.1); + if (ceiled_parent_radius == volumes.ceilRadius(projected_radius_increased, parent.state.use_min_xy_dist) || projected_radius_increased < config.increase_radius_until_radius) // If it is guaranteed possible to increase the radius, the maximum movement speed can be increased, as it is assumed that the maximum movement speed is the one of the slower moving wall From 9a01df4a800bb3333ae748d230b95416b2b77cf7 Mon Sep 17 00:00:00 2001 From: Ian Bassi Date: Sat, 30 May 2026 03:16:59 -0300 Subject: [PATCH 15/18] Filament for features for SEMM (#13937) * Remove limit for SEMM * Remove legacy check * Revert "Remove legacy check" This reverts commit c6e5074114c5544974b07612c06faee3e78a912c. --- src/slic3r/GUI/ConfigManipulation.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 1df4dba9c2..49b4410d18 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -836,9 +836,6 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co toggle_line("enable_tower_interface_cooldown_during_tower", have_prime_tower && config->opt_bool("enable_tower_interface_features")); - for (auto el : {"wall_filament", "sparse_infill_filament", "solid_infill_filament", "wipe_tower_filament"}) - toggle_line(el, !bSEMM); - bool purge_in_primetower = preset_bundle->printers.get_edited_preset().config.opt_bool("purge_in_prime_tower"); for (auto el : {"wipe_tower_rotation_angle", "wipe_tower_cone_angle", From 9d8c7cc495c43af8041abbb48ff2a489418aba80 Mon Sep 17 00:00:00 2001 From: Tobias Gloth Date: Sat, 30 May 2026 04:51:31 -0400 Subject: [PATCH 16/18] use /bigobj when building Eigen with MSVC (#13922) --- deps/Eigen/Eigen.cmake | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/deps/Eigen/Eigen.cmake b/deps/Eigen/Eigen.cmake index ed87582b16..599976debb 100644 --- a/deps/Eigen/Eigen.cmake +++ b/deps/Eigen/Eigen.cmake @@ -1,5 +1,11 @@ +set(_eigen_extra_flags "") +if (MSVC) + set(_eigen_extra_flags "-DCMAKE_CXX_FLAGS:STRING=/bigobj") +endif () + orcaslicer_add_cmake_project(Eigen URL https://gitlab.com/libeigen/eigen/-/archive/5.0.1/eigen-5.0.1.zip URL_HASH SHA256=0dbb1f9e3aaad66f352c03227d8c983f6f0b49e0b07e71a7300f4abcc01aee12 + CMAKE_ARGS "${_eigen_extra_flags}" DEPENDS dep_Boost dep_GMP dep_MPFR ) From 61e2abfb2b9cf5bfad8db54678e78baaa1519746 Mon Sep 17 00:00:00 2001 From: Wegerich Date: Sat, 30 May 2026 14:57:54 +0100 Subject: [PATCH 17/18] Enhance G92 E0 case sensitivity check (#13933) --- src/libslic3r/Print.cpp | 72 +++++++++++++++++++++++++++++------------ 1 file changed, 51 insertions(+), 21 deletions(-) diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index a335e29b82..d53a168ec2 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -1254,10 +1254,6 @@ StringObjectException Print::check_multi_filament_valid(const Print& print) return ret; } -// Orca: this g92e0 regex is used copied from PrusaSlicer -// Matches "G92 E0" with various forms of writing the zero and with an optional comment. -boost::regex regex_g92e0 { "^[ \\t]*[gG]92[ \\t]*[eE](0(\\.0*)?|\\.0+)[ \\t]*(;.*)?$" }; - // Precondition: Print::validate() requires the Print::apply() to be called its invocation. //BBS: refine seq-print validation logic.....FIXME:StringObjectException *warning can only contain one warning, but there might be many warnings, need a vector StringObjectException Print::validate(StringObjectException *warning, Polygons* collison_polygons, std::vector>* height_polygons) const @@ -1675,26 +1671,60 @@ StringObjectException Print::validate(StringObjectException *warning, Polygons* } // Orca: G92 E0 is not supported when using absolute extruder addressing - // This check is copied from PrusaSlicer, the original author is Vojtech Bubnik - if(!is_BBL_printer()) { - bool before_layer_gcode_resets_extruder = - boost::regex_search(m_config.before_layer_change_gcode.value, regex_g92e0); - bool layer_gcode_resets_extruder = boost::regex_search(m_config.layer_change_gcode.value, regex_g92e0); - if (m_config.use_relative_e_distances) { - // See GH issues #6336 #5073 - if ((m_config.gcode_flavor == gcfMarlinLegacy || m_config.gcode_flavor == gcfMarlinFirmware) && - !before_layer_gcode_resets_extruder && !layer_gcode_resets_extruder) - return {L("Relative extruder addressing requires resetting the extruder position at each layer to " - "prevent loss of floating point accuracy. Add \"G92 E0\" to layer_gcode."), - nullptr, "before_layer_change_gcode"}; - } else if (before_layer_gcode_resets_extruder) - return {L("\"G92 E0\" was found in before_layer_gcode, which is incompatible with absolute extruder " + // This check is modified from PrusaSlicer, the original author is Vojtech Bubnik + // Orca: case‑sensitive match for exactly "G92 E0" (uppercase G and E only) + // because gcode is case sensitive and G92 e0 satisfies the regex but causes a slicing error + // https://github.com/OrcaSlicer/OrcaSlicer/issues/13927 + + // Matches any case of "G92 E0" (original pattern) + static const boost::regex regex_g92e0 { + "^[ \\t]*[gG]92[ \\t]*[eE](0(\\.0*)?|\\.0+)[ \\t]*(;.*)?$" + }; + // Matches only the exact uppercase "G92 E0" + static const boost::regex regex_g92e0_correct { + "^[ \\t]*G92[ \\t]*E(0(\\.0*)?|\\.0+)[ \\t]*(;.*)?$" + }; + + const bool before_has_g92_any = boost::regex_search( + m_config.before_layer_change_gcode.value, regex_g92e0); + const bool layer_has_g92_any = boost::regex_search( + m_config.layer_change_gcode.value, regex_g92e0); + + if (m_config.use_relative_e_distances) { + // Relative mode: "G92 E0" is required to reset extruder position. + const bool before_has_g92_exact = boost::regex_search( + m_config.before_layer_change_gcode.value, regex_g92e0_correct); + const bool layer_has_g92_exact = boost::regex_search( + m_config.layer_change_gcode.value, regex_g92e0_correct); + + // Wrong case found? + if (before_has_g92_any && !before_has_g92_exact) + return {L("\"G92 E0\" was found in before_layer_change_gcode, but the G or E are not uppercase. " + "Please change them to the exact uppercase \"G92 E0\"."), + nullptr, "before_layer_change_gcode"}; + if (layer_has_g92_any && !layer_has_g92_exact) + return {L("\"G92 E0\" was found in layer_change_gcode, but the G or E are not uppercase. " + "Please change them to the exact uppercase \"G92 E0\"."), + nullptr, "layer_change_gcode"}; + + // Only Marlin flavours need the reset; BBL printers do not. + if ((m_config.gcode_flavor == gcfMarlinLegacy || m_config.gcode_flavor == gcfMarlinFirmware) && + !is_BBL_printer() && + !before_has_g92_exact && !layer_has_g92_exact) + return {L("Relative extruder addressing requires resetting the extruder position at each layer to " + "prevent loss of floating point accuracy. Add \"G92 E0\" to layer_gcode."), + nullptr, "before_layer_change_gcode"}; + } else { + // Absolute mode: any occurrence of "G92 E0" is incompatible. + if (before_has_g92_any) + return {L("\"G92 E0\" was found in before_layer_change_gcode, which is incompatible with absolute extruder " "addressing."), nullptr, "before_layer_change_gcode"}; - else if (layer_gcode_resets_extruder) - return {L("\"G92 E0\" was found in layer_gcode, which is incompatible with absolute extruder addressing."), + if (layer_has_g92_any) + return {L("\"G92 E0\" was found in layer_change_gcode, which is incompatible with absolute extruder " + "addressing."), nullptr, "layer_change_gcode"}; - } + } const ConfigOptionDef* bed_type_def = print_config_def.get("curr_bed_type"); assert(bed_type_def != nullptr); From b78d5b94dc4758801d9d89b53a13dd18c891c3b6 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Sat, 30 May 2026 22:06:54 +0800 Subject: [PATCH 18/18] Add SeeMeCNC printer profiles (#13924) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add SeeMeCNC printer profiles Adds machine, filament, and process profiles for SeeMeCNC printers: Artemis, BOSSdelta 300, BOSSdelta 500 (0505/0510/0521), and RostockMAX v3.2/v4 — covering 0.4mm, 0.5mm, 0.7mm, and 1.0mm nozzles. Includes PLA, ABS, PETG, PETG-CF, PA-CF, and TPU filament profiles. Co-authored-by: Sam <47287571+Sewbot@users.noreply.github.com> * bump version --------- Co-authored-by: Sam <47287571+Sewbot@users.noreply.github.com> --- resources/profiles/SeeMeCNC.json | 694 ++++++++++++++++++ .../SeeMeCNC/SeeMeCNC Artemis 300_cover.png | Bin 0 -> 8270 bytes .../SeeMeCNC/SeeMeCNC BOSSdelta 300_cover.png | Bin 0 -> 7996 bytes .../SeeMeCNC BOSSdelta 500 0505_cover.png | Bin 0 -> 45019 bytes .../SeeMeCNC BOSSdelta 500 0510_cover.png | Bin 0 -> 34369 bytes .../SeeMeCNC BOSSdelta 500 0521_cover.png | Bin 0 -> 32495 bytes .../SeeMeCNC RostockMAX v3.2_cover.png | Bin 0 -> 28813 bytes .../SeeMeCNC/SeeMeCNC RostockMAX v4_cover.png | Bin 0 -> 23501 bytes .../SeeMeCNC/SeeMeCNC_Buildplate_Model.STL | Bin 0 -> 60084 bytes .../SeeMeCNC_Buildplate_Model_500.STL | Bin 0 -> 60084 bytes .../SeeMeCNC/SeeMeCNC_Buildplate_texture.png | Bin 0 -> 9085 bytes .../SeeMeCNC/filament/SeeMeCNC_ABS.json | 265 +++++++ .../SeeMeCNC/filament/SeeMeCNC_PA-CF.json | 268 +++++++ .../SeeMeCNC/filament/SeeMeCNC_PETG-CF.json | 265 +++++++ .../SeeMeCNC/filament/SeeMeCNC_PETG.json | 265 +++++++ .../SeeMeCNC/filament/SeeMeCNC_PLA.json | 447 +++++++++++ .../SeeMeCNC/filament/SeeMeCNC_TPU.json | 185 +++++ .../filament/SeeMeCNC_filament_base.json | 185 +++++ .../machine/SeeMeCNC Artemis 300.json | 15 + .../machine/SeeMeCNC BOSSdelta 300.json | 15 + .../machine/SeeMeCNC BOSSdelta 500 0505.json | 15 + .../machine/SeeMeCNC BOSSdelta 500 0510.json | 15 + .../machine/SeeMeCNC BOSSdelta 500 0521.json | 15 + .../machine/SeeMeCNC RostockMAX v3.2.json | 15 + .../machine/SeeMeCNC RostockMAX v4.json | 15 + .../machine/SeeMeCNC_Artemis_0_4mm.json | 351 +++++++++ .../machine/SeeMeCNC_Artemis_0_5mm.json | 351 +++++++++ .../machine/SeeMeCNC_Artemis_0_7mm.json | 351 +++++++++ .../machine/SeeMeCNC_Artemis_1_0mm.json | 351 +++++++++ .../SeeMeCNC_BOSSdelta500_0505_0_4mm.json | 351 +++++++++ .../SeeMeCNC_BOSSdelta500_0505_0_5mm.json | 351 +++++++++ .../SeeMeCNC_BOSSdelta500_0505_0_7mm.json | 351 +++++++++ .../SeeMeCNC_BOSSdelta500_0505_1_0mm.json | 351 +++++++++ .../SeeMeCNC_BOSSdelta500_0510_0_4mm.json | 351 +++++++++ .../SeeMeCNC_BOSSdelta500_0510_0_5mm.json | 351 +++++++++ .../SeeMeCNC_BOSSdelta500_0510_0_7mm.json | 351 +++++++++ .../SeeMeCNC_BOSSdelta500_0510_1_0mm.json | 351 +++++++++ .../SeeMeCNC_BOSSdelta500_0521_0_4mm.json | 351 +++++++++ .../SeeMeCNC_BOSSdelta500_0521_0_5mm.json | 351 +++++++++ .../SeeMeCNC_BOSSdelta500_0521_0_7mm.json | 351 +++++++++ .../SeeMeCNC_BOSSdelta500_0521_1_0mm.json | 351 +++++++++ .../machine/SeeMeCNC_BOSSdelta_300_0_4mm.json | 351 +++++++++ .../machine/SeeMeCNC_BOSSdelta_300_0_5mm.json | 351 +++++++++ .../machine/SeeMeCNC_BOSSdelta_300_0_7mm.json | 351 +++++++++ .../machine/SeeMeCNC_BOSSdelta_300_1_0mm.json | 351 +++++++++ .../SeeMeCNC_RostockMAX_v3.2_0_4mm.json | 351 +++++++++ .../SeeMeCNC_RostockMAX_v3.2_0_5mm.json | 351 +++++++++ .../SeeMeCNC_RostockMAX_v3.2_0_7mm.json | 351 +++++++++ .../SeeMeCNC_RostockMAX_v3.2_1_0mm.json | 351 +++++++++ .../machine/SeeMeCNC_RostockMAX_v4_0_4mm.json | 351 +++++++++ .../machine/SeeMeCNC_RostockMAX_v4_0_5mm.json | 351 +++++++++ .../machine/SeeMeCNC_RostockMAX_v4_0_7mm.json | 351 +++++++++ .../machine/SeeMeCNC_RostockMAX_v4_1_0mm.json | 351 +++++++++ .../0.16mm Fine @SeeMeCNC Artemis 0.4.json | 22 + ...16mm Fine @SeeMeCNC BOSSdelta 300 0.4.json | 22 + ...Fine @SeeMeCNC BOSSdelta 500 0505 0.4.json | 22 + ...Fine @SeeMeCNC BOSSdelta 500 0510 0.4.json | 22 + ...Fine @SeeMeCNC BOSSdelta 500 0521 0.4.json | 22 + ...mm Fine @SeeMeCNC RostockMAX v3.2 0.4.json | 22 + ...16mm Fine @SeeMeCNC RostockMAX v4 0.4.json | 22 + ...m Draft @SeeMeCNC RostockMAX v3.2 0.4.json | 22 + .../0.20mm Fine @SeeMeCNC Artemis 0.5.json | 22 + ...20mm Fine @SeeMeCNC BOSSdelta 300 0.5.json | 22 + ...Fine @SeeMeCNC BOSSdelta 500 0505 0.5.json | 22 + ...Fine @SeeMeCNC BOSSdelta 500 0510 0.5.json | 22 + ...Fine @SeeMeCNC BOSSdelta 500 0521 0.5.json | 22 + ...mm Fine @SeeMeCNC RostockMAX v3.2 0.5.json | 22 + ...20mm Fine @SeeMeCNC RostockMAX v4 0.5.json | 22 + ...0.20mm Standard @SeeMeCNC Artemis 0.4.json | 22 + ... Standard @SeeMeCNC BOSSdelta 300 0.4.json | 22 + ...dard @SeeMeCNC BOSSdelta 500 0505 0.4.json | 22 + ...dard @SeeMeCNC BOSSdelta 500 0510 0.4.json | 22 + ...dard @SeeMeCNC BOSSdelta 500 0521 0.4.json | 22 + ...tandard @SeeMeCNC RostockMAX v3.2 0.4.json | 22 + ... Standard @SeeMeCNC RostockMAX v4 0.4.json | 22 + .../0.24mm Draft @SeeMeCNC Artemis 0.4.json | 22 + ...4mm Draft @SeeMeCNC BOSSdelta 300 0.4.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0505 0.4.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0510 0.4.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0521 0.4.json | 22 + ...m Draft @SeeMeCNC RostockMAX v3.2 0.4.json | 22 + ...4mm Draft @SeeMeCNC RostockMAX v4 0.4.json | 22 + ...0.25mm Standard @SeeMeCNC Artemis 0.5.json | 22 + ... Standard @SeeMeCNC BOSSdelta 300 0.5.json | 22 + ...dard @SeeMeCNC BOSSdelta 500 0505 0.5.json | 22 + ...dard @SeeMeCNC BOSSdelta 500 0510 0.5.json | 22 + ...dard @SeeMeCNC BOSSdelta 500 0521 0.5.json | 22 + ...tandard @SeeMeCNC RostockMAX v3.2 0.5.json | 22 + ... Standard @SeeMeCNC RostockMAX v4 0.5.json | 22 + ...8mm Extra Draft @SeeMeCNC Artemis 0.4.json | 22 + ...tra Draft @SeeMeCNC BOSSdelta 300 0.4.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0505 0.4.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0510 0.4.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0521 0.4.json | 22 + ...a Draft @SeeMeCNC RostockMAX v3.2 0.4.json | 22 + ...tra Draft @SeeMeCNC RostockMAX v4 0.4.json | 22 + .../0.28mm Fine @SeeMeCNC Artemis 0.7.json | 22 + ...28mm Fine @SeeMeCNC BOSSdelta 300 0.7.json | 22 + ...Fine @SeeMeCNC BOSSdelta 500 0505 0.7.json | 22 + ...Fine @SeeMeCNC BOSSdelta 500 0510 0.7.json | 22 + ...Fine @SeeMeCNC BOSSdelta 500 0521 0.7.json | 22 + ...mm Fine @SeeMeCNC RostockMAX v3.2 0.7.json | 22 + ...28mm Fine @SeeMeCNC RostockMAX v4 0.7.json | 22 + .../0.30mm Draft @SeeMeCNC Artemis 0.5.json | 22 + ...0mm Draft @SeeMeCNC BOSSdelta 300 0.5.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0505 0.5.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0510 0.5.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0521 0.5.json | 22 + ...m Draft @SeeMeCNC RostockMAX v3.2 0.5.json | 22 + ...0mm Draft @SeeMeCNC RostockMAX v4 0.5.json | 22 + ....30mm TPU Solid @SeeMeCNC Artemis 0.7.json | 34 + ...TPU Solid @SeeMeCNC BOSSdelta 300 0.7.json | 34 + ...olid @SeeMeCNC BOSSdelta 500 0505 0.7.json | 34 + ...olid @SeeMeCNC BOSSdelta 500 0510 0.7.json | 34 + ...olid @SeeMeCNC BOSSdelta 500 0521 0.7.json | 34 + ...U Solid @SeeMeCNC RostockMAX v3.2 0.7.json | 34 + ...TPU Solid @SeeMeCNC RostockMAX v4 0.7.json | 34 + ...5mm Extra Draft @SeeMeCNC Artemis 0.5.json | 22 + ...tra Draft @SeeMeCNC BOSSdelta 300 0.5.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0505 0.5.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0510 0.5.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0521 0.5.json | 22 + ...a Draft @SeeMeCNC RostockMAX v3.2 0.5.json | 22 + ...tra Draft @SeeMeCNC RostockMAX v4 0.5.json | 22 + ...0.35mm Standard @SeeMeCNC Artemis 0.7.json | 22 + ... Standard @SeeMeCNC BOSSdelta 300 0.7.json | 22 + ...dard @SeeMeCNC BOSSdelta 500 0505 0.7.json | 22 + ...dard @SeeMeCNC BOSSdelta 500 0510 0.7.json | 22 + ...dard @SeeMeCNC BOSSdelta 500 0521 0.7.json | 22 + ...tandard @SeeMeCNC RostockMAX v3.2 0.7.json | 22 + ... Standard @SeeMeCNC RostockMAX v4 0.7.json | 22 + ...0.35mm TPU Vase @SeeMeCNC Artemis 0.7.json | 37 + ... TPU Vase @SeeMeCNC BOSSdelta 300 0.7.json | 37 + ...Vase @SeeMeCNC BOSSdelta 500 0505 0.7.json | 37 + ...Vase @SeeMeCNC BOSSdelta 500 0510 0.7.json | 37 + ...Vase @SeeMeCNC BOSSdelta 500 0521 0.7.json | 37 + ...PU Vase @SeeMeCNC RostockMAX v3.2 0.7.json | 37 + ... TPU Vase @SeeMeCNC RostockMAX v4 0.7.json | 37 + .../0.40mm Fine @SeeMeCNC Artemis 1.0.json | 22 + ...40mm Fine @SeeMeCNC BOSSdelta 300 1.0.json | 22 + ...Fine @SeeMeCNC BOSSdelta 500 0505 1.0.json | 22 + ...Fine @SeeMeCNC BOSSdelta 500 0510 1.0.json | 22 + ...Fine @SeeMeCNC BOSSdelta 500 0521 1.0.json | 22 + ...mm Fine @SeeMeCNC RostockMAX v3.2 1.0.json | 22 + ...40mm Fine @SeeMeCNC RostockMAX v4 1.0.json | 22 + .../0.42mm Draft @SeeMeCNC Artemis 0.7.json | 22 + ...2mm Draft @SeeMeCNC BOSSdelta 300 0.7.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0505 0.7.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0510 0.7.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0521 0.7.json | 22 + ...m Draft @SeeMeCNC RostockMAX v3.2 0.7.json | 22 + ...2mm Draft @SeeMeCNC RostockMAX v4 0.7.json | 22 + ...9mm Extra Draft @SeeMeCNC Artemis 0.7.json | 22 + ...tra Draft @SeeMeCNC BOSSdelta 300 0.7.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0505 0.7.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0510 0.7.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0521 0.7.json | 22 + ...a Draft @SeeMeCNC RostockMAX v3.2 0.7.json | 22 + ...tra Draft @SeeMeCNC RostockMAX v4 0.7.json | 22 + ...0.50mm Standard @SeeMeCNC Artemis 1.0.json | 22 + ... Standard @SeeMeCNC BOSSdelta 300 1.0.json | 22 + ...dard @SeeMeCNC BOSSdelta 500 0505 1.0.json | 22 + ...dard @SeeMeCNC BOSSdelta 500 0510 1.0.json | 22 + ...dard @SeeMeCNC BOSSdelta 500 0521 1.0.json | 22 + ...tandard @SeeMeCNC RostockMAX v3.2 1.0.json | 22 + ... Standard @SeeMeCNC RostockMAX v4 1.0.json | 22 + .../0.60mm Draft @SeeMeCNC Artemis 1.0.json | 22 + ...0mm Draft @SeeMeCNC BOSSdelta 300 1.0.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0505 1.0.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0510 1.0.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0521 1.0.json | 22 + ...m Draft @SeeMeCNC RostockMAX v3.2 1.0.json | 22 + ...0mm Draft @SeeMeCNC RostockMAX v4 1.0.json | 22 + ...0mm Extra Draft @SeeMeCNC Artemis 1.0.json | 22 + ...tra Draft @SeeMeCNC BOSSdelta 300 1.0.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0505 1.0.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0510 1.0.json | 22 + ...raft @SeeMeCNC BOSSdelta 500 0521 1.0.json | 22 + ...a Draft @SeeMeCNC RostockMAX v3.2 1.0.json | 22 + ...tra Draft @SeeMeCNC RostockMAX v4 1.0.json | 22 + .../process/SeeMeCNC_process_base.json | 351 +++++++++ 181 files changed, 15841 insertions(+) create mode 100644 resources/profiles/SeeMeCNC.json create mode 100644 resources/profiles/SeeMeCNC/SeeMeCNC Artemis 300_cover.png create mode 100644 resources/profiles/SeeMeCNC/SeeMeCNC BOSSdelta 300_cover.png create mode 100644 resources/profiles/SeeMeCNC/SeeMeCNC BOSSdelta 500 0505_cover.png create mode 100644 resources/profiles/SeeMeCNC/SeeMeCNC BOSSdelta 500 0510_cover.png create mode 100644 resources/profiles/SeeMeCNC/SeeMeCNC BOSSdelta 500 0521_cover.png create mode 100644 resources/profiles/SeeMeCNC/SeeMeCNC RostockMAX v3.2_cover.png create mode 100644 resources/profiles/SeeMeCNC/SeeMeCNC RostockMAX v4_cover.png create mode 100644 resources/profiles/SeeMeCNC/SeeMeCNC_Buildplate_Model.STL create mode 100644 resources/profiles/SeeMeCNC/SeeMeCNC_Buildplate_Model_500.STL create mode 100644 resources/profiles/SeeMeCNC/SeeMeCNC_Buildplate_texture.png create mode 100644 resources/profiles/SeeMeCNC/filament/SeeMeCNC_ABS.json create mode 100644 resources/profiles/SeeMeCNC/filament/SeeMeCNC_PA-CF.json create mode 100644 resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG-CF.json create mode 100644 resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG.json create mode 100644 resources/profiles/SeeMeCNC/filament/SeeMeCNC_PLA.json create mode 100644 resources/profiles/SeeMeCNC/filament/SeeMeCNC_TPU.json create mode 100644 resources/profiles/SeeMeCNC/filament/SeeMeCNC_filament_base.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC Artemis 300.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 300.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 500 0505.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 500 0510.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 500 0521.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC RostockMAX v3.2.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC RostockMAX v4.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_0_4mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_0_5mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_0_7mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_1_0mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_0_4mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_0_5mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_0_7mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_1_0mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_0_4mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_0_5mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_0_7mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_1_0mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_0_4mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_0_5mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_0_7mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_1_0mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_0_4mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_0_5mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_0_7mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_1_0mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_0_4mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_0_5mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_0_7mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_1_0mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_0_4mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_0_5mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_0_7mm.json create mode 100644 resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_1_0mm.json create mode 100644 resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC Artemis 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC RostockMAX v4 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Draft @SeeMeCNC RostockMAX v3.2 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC Artemis 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC RostockMAX v4 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC Artemis 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC RostockMAX v4 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC Artemis 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC RostockMAX v4 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC Artemis 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC RostockMAX v4 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC Artemis 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4.json create mode 100644 resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC Artemis 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC RostockMAX v4 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC Artemis 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC RostockMAX v4 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC Artemis 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 300 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0505 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0510 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0521 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC RostockMAX v3.2 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC RostockMAX v4 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC Artemis 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC Artemis 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC RostockMAX v4 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC Artemis 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 300 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0505 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0510 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0521 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC RostockMAX v3.2 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC RostockMAX v4 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC Artemis 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC RostockMAX v4 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC Artemis 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC RostockMAX v4 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC Artemis 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7.json create mode 100644 resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC Artemis 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC RostockMAX v4 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC Artemis 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC RostockMAX v4 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC Artemis 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0.json create mode 100644 resources/profiles/SeeMeCNC/process/SeeMeCNC_process_base.json diff --git a/resources/profiles/SeeMeCNC.json b/resources/profiles/SeeMeCNC.json new file mode 100644 index 0000000000..401a0f81c9 --- /dev/null +++ b/resources/profiles/SeeMeCNC.json @@ -0,0 +1,694 @@ +{ + "name": "SeeMeCNC", + "version": "2.4.0.00", + "force_update": "1", + "description": "SeeMeCNC configurations - Full profile set for Artemis, BOSSdelta, and RostockMAX printers", + "machine_model_list": [ + { + "name": "SeeMeCNC Artemis 300", + "sub_path": "machine/SeeMeCNC Artemis 300.json" + }, + { + "name": "SeeMeCNC BOSSdelta 300", + "sub_path": "machine/SeeMeCNC BOSSdelta 300.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0505", + "sub_path": "machine/SeeMeCNC BOSSdelta 500 0505.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0510", + "sub_path": "machine/SeeMeCNC BOSSdelta 500 0510.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0521", + "sub_path": "machine/SeeMeCNC BOSSdelta 500 0521.json" + }, + { + "name": "SeeMeCNC RostockMAX v3.2", + "sub_path": "machine/SeeMeCNC RostockMAX v3.2.json" + }, + { + "name": "SeeMeCNC RostockMAX v4", + "sub_path": "machine/SeeMeCNC RostockMAX v4.json" + } + ], + "process_list": [ + { + "name": "SeeMeCNC process base", + "sub_path": "process/SeeMeCNC_process_base.json" + }, + { + "name": "0.16mm Fine @SeeMeCNC Artemis 0.4", + "sub_path": "process/0.16mm Fine @SeeMeCNC Artemis 0.4.json" + }, + { + "name": "0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4", + "sub_path": "process/0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4.json" + }, + { + "name": "0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4", + "sub_path": "process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4.json" + }, + { + "name": "0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4", + "sub_path": "process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4.json" + }, + { + "name": "0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4", + "sub_path": "process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4.json" + }, + { + "name": "0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4", + "sub_path": "process/0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4.json" + }, + { + "name": "0.16mm Fine @SeeMeCNC RostockMAX v4 0.4", + "sub_path": "process/0.16mm Fine @SeeMeCNC RostockMAX v4 0.4.json" + }, + { + "name": "0.20mm Draft @SeeMeCNC RostockMAX v3.2 0.4", + "sub_path": "process/0.20mm Draft @SeeMeCNC RostockMAX v3.2 0.4.json" + }, + { + "name": "0.20mm Fine @SeeMeCNC Artemis 0.5", + "sub_path": "process/0.20mm Fine @SeeMeCNC Artemis 0.5.json" + }, + { + "name": "0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5", + "sub_path": "process/0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5.json" + }, + { + "name": "0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5", + "sub_path": "process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5.json" + }, + { + "name": "0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5", + "sub_path": "process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5.json" + }, + { + "name": "0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5", + "sub_path": "process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5.json" + }, + { + "name": "0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5", + "sub_path": "process/0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5.json" + }, + { + "name": "0.20mm Fine @SeeMeCNC RostockMAX v4 0.5", + "sub_path": "process/0.20mm Fine @SeeMeCNC RostockMAX v4 0.5.json" + }, + { + "name": "0.20mm Standard @SeeMeCNC Artemis 0.4", + "sub_path": "process/0.20mm Standard @SeeMeCNC Artemis 0.4.json" + }, + { + "name": "0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4", + "sub_path": "process/0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4.json" + }, + { + "name": "0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4", + "sub_path": "process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4.json" + }, + { + "name": "0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4", + "sub_path": "process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4.json" + }, + { + "name": "0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4", + "sub_path": "process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4.json" + }, + { + "name": "0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4", + "sub_path": "process/0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4.json" + }, + { + "name": "0.20mm Standard @SeeMeCNC RostockMAX v4 0.4", + "sub_path": "process/0.20mm Standard @SeeMeCNC RostockMAX v4 0.4.json" + }, + { + "name": "0.24mm Draft @SeeMeCNC Artemis 0.4", + "sub_path": "process/0.24mm Draft @SeeMeCNC Artemis 0.4.json" + }, + { + "name": "0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4", + "sub_path": "process/0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4.json" + }, + { + "name": "0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "sub_path": "process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4.json" + }, + { + "name": "0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "sub_path": "process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4.json" + }, + { + "name": "0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "sub_path": "process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4.json" + }, + { + "name": "0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4", + "sub_path": "process/0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4.json" + }, + { + "name": "0.24mm Draft @SeeMeCNC RostockMAX v4 0.4", + "sub_path": "process/0.24mm Draft @SeeMeCNC RostockMAX v4 0.4.json" + }, + { + "name": "0.25mm Standard @SeeMeCNC Artemis 0.5", + "sub_path": "process/0.25mm Standard @SeeMeCNC Artemis 0.5.json" + }, + { + "name": "0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5", + "sub_path": "process/0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5.json" + }, + { + "name": "0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5", + "sub_path": "process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5.json" + }, + { + "name": "0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5", + "sub_path": "process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5.json" + }, + { + "name": "0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5", + "sub_path": "process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5.json" + }, + { + "name": "0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5", + "sub_path": "process/0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5.json" + }, + { + "name": "0.25mm Standard @SeeMeCNC RostockMAX v4 0.5", + "sub_path": "process/0.25mm Standard @SeeMeCNC RostockMAX v4 0.5.json" + }, + { + "name": "0.28mm Extra Draft @SeeMeCNC Artemis 0.4", + "sub_path": "process/0.28mm Extra Draft @SeeMeCNC Artemis 0.4.json" + }, + { + "name": "0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4", + "sub_path": "process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4.json" + }, + { + "name": "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "sub_path": "process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4.json" + }, + { + "name": "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "sub_path": "process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4.json" + }, + { + "name": "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "sub_path": "process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4.json" + }, + { + "name": "0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4", + "sub_path": "process/0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4.json" + }, + { + "name": "0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4", + "sub_path": "process/0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4.json" + }, + { + "name": "0.28mm Fine @SeeMeCNC Artemis 0.7", + "sub_path": "process/0.28mm Fine @SeeMeCNC Artemis 0.7.json" + }, + { + "name": "0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7", + "sub_path": "process/0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7.json" + }, + { + "name": "0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7", + "sub_path": "process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7.json" + }, + { + "name": "0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7", + "sub_path": "process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7.json" + }, + { + "name": "0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7", + "sub_path": "process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7.json" + }, + { + "name": "0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7", + "sub_path": "process/0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7.json" + }, + { + "name": "0.28mm Fine @SeeMeCNC RostockMAX v4 0.7", + "sub_path": "process/0.28mm Fine @SeeMeCNC RostockMAX v4 0.7.json" + }, + { + "name": "0.30mm Draft @SeeMeCNC Artemis 0.5", + "sub_path": "process/0.30mm Draft @SeeMeCNC Artemis 0.5.json" + }, + { + "name": "0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5", + "sub_path": "process/0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5.json" + }, + { + "name": "0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "sub_path": "process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5.json" + }, + { + "name": "0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "sub_path": "process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5.json" + }, + { + "name": "0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "sub_path": "process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5.json" + }, + { + "name": "0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5", + "sub_path": "process/0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5.json" + }, + { + "name": "0.30mm Draft @SeeMeCNC RostockMAX v4 0.5", + "sub_path": "process/0.30mm Draft @SeeMeCNC RostockMAX v4 0.5.json" + }, + { + "name": "0.30mm TPU Solid @SeeMeCNC Artemis 0.7", + "sub_path": "process/0.30mm TPU Solid @SeeMeCNC Artemis 0.7.json" + }, + { + "name": "0.30mm TPU Solid @SeeMeCNC BOSSdelta 300 0.7", + "sub_path": "process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 300 0.7.json" + }, + { + "name": "0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0505 0.7", + "sub_path": "process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0505 0.7.json" + }, + { + "name": "0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0510 0.7", + "sub_path": "process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0510 0.7.json" + }, + { + "name": "0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0521 0.7", + "sub_path": "process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0521 0.7.json" + }, + { + "name": "0.30mm TPU Solid @SeeMeCNC RostockMAX v3.2 0.7", + "sub_path": "process/0.30mm TPU Solid @SeeMeCNC RostockMAX v3.2 0.7.json" + }, + { + "name": "0.30mm TPU Solid @SeeMeCNC RostockMAX v4 0.7", + "sub_path": "process/0.30mm TPU Solid @SeeMeCNC RostockMAX v4 0.7.json" + }, + { + "name": "0.35mm Extra Draft @SeeMeCNC Artemis 0.5", + "sub_path": "process/0.35mm Extra Draft @SeeMeCNC Artemis 0.5.json" + }, + { + "name": "0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5", + "sub_path": "process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5.json" + }, + { + "name": "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "sub_path": "process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5.json" + }, + { + "name": "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "sub_path": "process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5.json" + }, + { + "name": "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "sub_path": "process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5.json" + }, + { + "name": "0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5", + "sub_path": "process/0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5.json" + }, + { + "name": "0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5", + "sub_path": "process/0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5.json" + }, + { + "name": "0.35mm Standard @SeeMeCNC Artemis 0.7", + "sub_path": "process/0.35mm Standard @SeeMeCNC Artemis 0.7.json" + }, + { + "name": "0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7", + "sub_path": "process/0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7.json" + }, + { + "name": "0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7", + "sub_path": "process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7.json" + }, + { + "name": "0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7", + "sub_path": "process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7.json" + }, + { + "name": "0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7", + "sub_path": "process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7.json" + }, + { + "name": "0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7", + "sub_path": "process/0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7.json" + }, + { + "name": "0.35mm Standard @SeeMeCNC RostockMAX v4 0.7", + "sub_path": "process/0.35mm Standard @SeeMeCNC RostockMAX v4 0.7.json" + }, + { + "name": "0.35mm TPU Vase @SeeMeCNC Artemis 0.7", + "sub_path": "process/0.35mm TPU Vase @SeeMeCNC Artemis 0.7.json" + }, + { + "name": "0.35mm TPU Vase @SeeMeCNC BOSSdelta 300 0.7", + "sub_path": "process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 300 0.7.json" + }, + { + "name": "0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0505 0.7", + "sub_path": "process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0505 0.7.json" + }, + { + "name": "0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0510 0.7", + "sub_path": "process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0510 0.7.json" + }, + { + "name": "0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0521 0.7", + "sub_path": "process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0521 0.7.json" + }, + { + "name": "0.35mm TPU Vase @SeeMeCNC RostockMAX v3.2 0.7", + "sub_path": "process/0.35mm TPU Vase @SeeMeCNC RostockMAX v3.2 0.7.json" + }, + { + "name": "0.35mm TPU Vase @SeeMeCNC RostockMAX v4 0.7", + "sub_path": "process/0.35mm TPU Vase @SeeMeCNC RostockMAX v4 0.7.json" + }, + { + "name": "0.40mm Fine @SeeMeCNC Artemis 1.0", + "sub_path": "process/0.40mm Fine @SeeMeCNC Artemis 1.0.json" + }, + { + "name": "0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0", + "sub_path": "process/0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0.json" + }, + { + "name": "0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0", + "sub_path": "process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0.json" + }, + { + "name": "0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0", + "sub_path": "process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0.json" + }, + { + "name": "0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0", + "sub_path": "process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0.json" + }, + { + "name": "0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0", + "sub_path": "process/0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0.json" + }, + { + "name": "0.40mm Fine @SeeMeCNC RostockMAX v4 1.0", + "sub_path": "process/0.40mm Fine @SeeMeCNC RostockMAX v4 1.0.json" + }, + { + "name": "0.42mm Draft @SeeMeCNC Artemis 0.7", + "sub_path": "process/0.42mm Draft @SeeMeCNC Artemis 0.7.json" + }, + { + "name": "0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7", + "sub_path": "process/0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7.json" + }, + { + "name": "0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "sub_path": "process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7.json" + }, + { + "name": "0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "sub_path": "process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7.json" + }, + { + "name": "0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "sub_path": "process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7.json" + }, + { + "name": "0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7", + "sub_path": "process/0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7.json" + }, + { + "name": "0.42mm Draft @SeeMeCNC RostockMAX v4 0.7", + "sub_path": "process/0.42mm Draft @SeeMeCNC RostockMAX v4 0.7.json" + }, + { + "name": "0.49mm Extra Draft @SeeMeCNC Artemis 0.7", + "sub_path": "process/0.49mm Extra Draft @SeeMeCNC Artemis 0.7.json" + }, + { + "name": "0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7", + "sub_path": "process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7.json" + }, + { + "name": "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "sub_path": "process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7.json" + }, + { + "name": "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "sub_path": "process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7.json" + }, + { + "name": "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "sub_path": "process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7.json" + }, + { + "name": "0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7", + "sub_path": "process/0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7.json" + }, + { + "name": "0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7", + "sub_path": "process/0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7.json" + }, + { + "name": "0.50mm Standard @SeeMeCNC Artemis 1.0", + "sub_path": "process/0.50mm Standard @SeeMeCNC Artemis 1.0.json" + }, + { + "name": "0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0", + "sub_path": "process/0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0.json" + }, + { + "name": "0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0", + "sub_path": "process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0.json" + }, + { + "name": "0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0", + "sub_path": "process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0.json" + }, + { + "name": "0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0", + "sub_path": "process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0.json" + }, + { + "name": "0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0", + "sub_path": "process/0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0.json" + }, + { + "name": "0.50mm Standard @SeeMeCNC RostockMAX v4 1.0", + "sub_path": "process/0.50mm Standard @SeeMeCNC RostockMAX v4 1.0.json" + }, + { + "name": "0.60mm Draft @SeeMeCNC Artemis 1.0", + "sub_path": "process/0.60mm Draft @SeeMeCNC Artemis 1.0.json" + }, + { + "name": "0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0", + "sub_path": "process/0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0.json" + }, + { + "name": "0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "sub_path": "process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0.json" + }, + { + "name": "0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "sub_path": "process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0.json" + }, + { + "name": "0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "sub_path": "process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0.json" + }, + { + "name": "0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0", + "sub_path": "process/0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0.json" + }, + { + "name": "0.60mm Draft @SeeMeCNC RostockMAX v4 1.0", + "sub_path": "process/0.60mm Draft @SeeMeCNC RostockMAX v4 1.0.json" + }, + { + "name": "0.70mm Extra Draft @SeeMeCNC Artemis 1.0", + "sub_path": "process/0.70mm Extra Draft @SeeMeCNC Artemis 1.0.json" + }, + { + "name": "0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0", + "sub_path": "process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0.json" + }, + { + "name": "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "sub_path": "process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0.json" + }, + { + "name": "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "sub_path": "process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0.json" + }, + { + "name": "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "sub_path": "process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0.json" + }, + { + "name": "0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0", + "sub_path": "process/0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0.json" + }, + { + "name": "0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0", + "sub_path": "process/0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0.json" + } + ], + "filament_list": [ + { + "name": "SeeMeCNC filament base", + "sub_path": "filament/SeeMeCNC_filament_base.json" + }, + { + "name": "SeeMeCNC ABS", + "sub_path": "filament/SeeMeCNC_ABS.json" + }, + { + "name": "SeeMeCNC PA-CF", + "sub_path": "filament/SeeMeCNC_PA-CF.json" + }, + { + "name": "SeeMeCNC PETG", + "sub_path": "filament/SeeMeCNC_PETG.json" + }, + { + "name": "SeeMeCNC PETG-CF", + "sub_path": "filament/SeeMeCNC_PETG-CF.json" + }, + { + "name": "SeeMeCNC TPU", + "sub_path": "filament/SeeMeCNC_TPU.json" + }, + { + "name": "SeeMeCNC PLA", + "sub_path": "filament/SeeMeCNC_PLA.json" + } + ], + "machine_list": [ + { + "name": "SeeMeCNC Artemis 0.4 nozzle", + "sub_path": "machine/SeeMeCNC_Artemis_0_4mm.json" + }, + { + "name": "SeeMeCNC Artemis 0.5 nozzle", + "sub_path": "machine/SeeMeCNC_Artemis_0_5mm.json" + }, + { + "name": "SeeMeCNC Artemis 0.7 nozzle", + "sub_path": "machine/SeeMeCNC_Artemis_0_7mm.json" + }, + { + "name": "SeeMeCNC Artemis 1.0 nozzle", + "sub_path": "machine/SeeMeCNC_Artemis_1_0mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 300 0.4 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta_300_0_4mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 300 0.5 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta_300_0_5mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 300 0.7 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta_300_0_7mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 300 1.0 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta_300_1_0mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0505 0.4 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta500_0505_0_4mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0505 0.5 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta500_0505_0_5mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta500_0505_0_7mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0505 1.0 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta500_0505_1_0mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0510 0.4 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta500_0510_0_4mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0510 0.5 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta500_0510_0_5mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta500_0510_0_7mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0510 1.0 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta500_0510_1_0mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0521 0.4 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta500_0521_0_4mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0521 0.5 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta500_0521_0_5mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta500_0521_0_7mm.json" + }, + { + "name": "SeeMeCNC BOSSdelta 500 0521 1.0 nozzle", + "sub_path": "machine/SeeMeCNC_BOSSdelta500_0521_1_0mm.json" + }, + { + "name": "SeeMeCNC RostockMAX v3.2 0.4 nozzle", + "sub_path": "machine/SeeMeCNC_RostockMAX_v3.2_0_4mm.json" + }, + { + "name": "SeeMeCNC RostockMAX v3.2 0.5 nozzle", + "sub_path": "machine/SeeMeCNC_RostockMAX_v3.2_0_5mm.json" + }, + { + "name": "SeeMeCNC RostockMAX v3.2 0.7 nozzle", + "sub_path": "machine/SeeMeCNC_RostockMAX_v3.2_0_7mm.json" + }, + { + "name": "SeeMeCNC RostockMAX v3.2 1.0 nozzle", + "sub_path": "machine/SeeMeCNC_RostockMAX_v3.2_1_0mm.json" + }, + { + "name": "SeeMeCNC RostockMAX v4 0.4 nozzle", + "sub_path": "machine/SeeMeCNC_RostockMAX_v4_0_4mm.json" + }, + { + "name": "SeeMeCNC RostockMAX v4 0.5 nozzle", + "sub_path": "machine/SeeMeCNC_RostockMAX_v4_0_5mm.json" + }, + { + "name": "SeeMeCNC RostockMAX v4 0.7 nozzle", + "sub_path": "machine/SeeMeCNC_RostockMAX_v4_0_7mm.json" + }, + { + "name": "SeeMeCNC RostockMAX v4 1.0 nozzle", + "sub_path": "machine/SeeMeCNC_RostockMAX_v4_1_0mm.json" + } + ] +} diff --git a/resources/profiles/SeeMeCNC/SeeMeCNC Artemis 300_cover.png b/resources/profiles/SeeMeCNC/SeeMeCNC Artemis 300_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..f98182e5733173caf0f3b7b2597b7f690fe06d00 GIT binary patch literal 8270 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

JOD`vq&C| z+d_-=!S?!s3=q&Lzc6c9VznxTc%ohi#jVF(#KyMRFpamI%gJ0qvswDfJObc_Rrd5T zaJTnX^g(aGNz$cc;F#2l-{);iKPwwS`raKnZ>GEWzs!~Xhf8euMXUZT3+(^?v^sYU K?lh`9#{M7eZDL^n literal 0 HcmV?d00001 diff --git a/resources/profiles/SeeMeCNC/SeeMeCNC BOSSdelta 300_cover.png b/resources/profiles/SeeMeCNC/SeeMeCNC BOSSdelta 300_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..fb6e603a0994d1b2cb7f4c95c7ef56894c373e38 GIT binary patch literal 7996 zcmeHs=U3BDu=h6!5RfVe1_)h>(tD`V10ucmNJl_JFH#avx}Zo0=~cP{(g}v5G^I%B z1Q0=r1`$O-xcpu`@1DQlp1Wse=Y00enX@}Pv%7OP(by14dxh-^006Xlx>}}}lJp-_ zLN0r%WY*$K0SYihYJlcHh(uokG7ohFbpU8iqdvPweu=qVbWIHaAY1?dFpmM?Jd|Tu@NZ%F2qBl~qno4v9p@$H#kkcw}d1 zhlGSwR#v`!+eS@Iy}i9XJUmPw%oZ0H_V@Qbj)`=+=b)~pGQY5~wzm9GUZx~J_wl1( z9&S!GRpqSA<}WJ?xd_Q}CFytF9qk<-R8-Va4z`8G1%0^TwUsY?Y;3A(>WK+Wm0F5C zT-=5?1tTJ3qA=0X7|c^)!53O8PwwcZS(`uca;vEt7g(c;LAZq9~-2srs}V)_0U22Nw8g&wpy*TU2}YFS$0HmVZ&zlLr!ik zU3R$oZ8ZmH2PYKDhl|sTgFBj=!(UC+)6qG{*$EqkNs8|;N{=WiDSqYQS`rnGw=?|Y zY5l&w_R@#{*Z#M9U`$tJ@p5gTKvP3AK<(?C`z4@4>)HeW05#Kp3r_o`Zo3;twYxm{Ugh4a7n}PXmhMQU2mEdz+>Q9Q}^q0*o z@3{;XsP>KC+}^tWZbHDIM^7+s^W16aVdT-N-&*hRfZx{y?meZD>j@e5x7w>OXRaSc zyTsNi|4mCcR^a6}LXS=leB9o=oEVUPW!)KJ3TI9Gu^=54WKy0+v9EoU6{-MJq9wee zw`Iaps&3ERh{r2>|G|9AoEhln5-dm#3-TJcei2$fg~I%U2T-Rl`L9(Kfd?eh8DX8| zI{aG)3v_3Tpop@yjEep-{5%Iy_=nQ(N4qPhn#+%H79(7=3&~{Od^H5iOheRZah=sJ zI^p;5G6#N77Dgm*)V3eGrZE-+U-o1OQamiPx^=z=lWp_cXdPvT5A`&1iE&N>0c|`L(CdG4}#fLi0RJKB!vB45@!i_#?N&Gqao&Sy?&W%dWR0Z zRc3Ti=N7<_rqd0sTy$_OFzP90X=~tx@K_pjK6{m!q*mNdNfT};hRN-Np-b+EHC_F; z)gScC2zufEO2uMOAgnkGoW*Z|iaQmoog|KEc^THU(Y)BdYJd5303rkWBy zzldPFpY#0f0f+Cqe?kqWlr0JR6)S1quPgbJ!_!B>DE>@1ke`u;JQ)Fe9fo6Ol?_3m zXQzxN2^+xNTvZc=BzPA@;?3H?a&L=1F;_QM?;ij~EgiAM-3$TMfu+4FGU2ZB)R9$J z2Cu@-AyuCZjW*yZcfxA!F~OQT$l8+2*hQTg%ge6?xK?~he(FCkCQ5#MZ~eJ!y_LP3|=G; zM8U1sbplH6`370zj7%TK!nHv7&VrMYIgn6yRT# zRBs1WGHb0p7BA)7g@`t%?sbOAY*f70^1kEf_X^u|RUsM198|wPvo-YWR*%%r9aMT} z$Boc@n+-pPj@HkOKYrO=(@qnBgDhntOUjW9V;aBE<8OS(urf}^?ETN!r+4>06<6)j z+1=9FW)C~rvc92`x zr@-;XUU=m`<{Kr6&Ic?+fDnT;kK{Y3Dtb29<^Ym{aE4EO+{5{08a8*j#oWokuL+r91&*TmpiH7)YT@B5#6;`~r04HygZ4ymq`(;r|Y^S~%C$BjwOb{nprZbJV=Jg%V2i|@G! zbye?`OQsGaYhYAnkAx(K`NSLOz|&tDa@~YPZ3Pnn>$13;wegEL7d3UFOPn8FbEXMR z!;UAB!~s*$GuO(SkB0uVwXC zA8|Lag53SGgHQ1@bHNE#2?UdG+K-)u5tS9$MYegZx15nYq>GhRfeO+(frcAGAH zkc64{rDoGUR^Q5TLZhpUVrTjMOS>&G&tDdZ`aL~KFK1?``O@1`BM0rIDSOz5iy0J1U%R^ z*YC2O8zBTWmKy68&Wcl>!MRCNPH%Apkbm40#do$c$Ia?Q7*?2mPaHoXcupYaA&WX> zquaI2gF3oRB1omKlcn-bi=ek`D{CxHT{@O#4uV+9Gv=WtnKYo5hE|To1_(&54 zd+RXCsL2#ohDy)|LLbd}tmXcygvz-X(7xd0|%AtX5j@c~U5=plP*{gmYX=}UQ}=nX`@ z_0fLNbE7jPTXS!x^4dvLc5TyxmN}NWHXNSKa%f4iB4##)Lt!zDKC`2pywYv7T_ZkN z8d^3ZMgV*?A&#LaFKJ+c0=FbNl~?Z?$n;{yuHHH2KBrm9r$^!uJkYtR&->ZE3g56n zIXDw)c!=Hoh`o}F97WngzkXdZT!Cvr)=;3Cg@ME{On3l{o&rO+DnOy$(iJItJ5vK4 z_xN!b7ONE4P)hh_saHypmy%E99ich@FZvx&Loj(31htWBwdpxRM;#zz;1_te8cxym zTvS3u?0WoUWdjqM(fKDS1!q8gx1e1?6V}9{9QuxxDdVev*$_lU#9Hkij-XN>og~lke=Lz7m*x++OAakiHD zU74GtDs2Qr`~gYnMiVds@PMBNa;-dr*(#Q@-+D9w#CrUVB+LF~75lm(0E)Z}C}XdpfW52Lr4?KY2YuMp?hKs}4|h)6^$Iv1JvKN(xTGKWwzS4I6_Gf-^%Gr*7u0tGm@1xX>xYBL!i}Nx70#roP78ta;dk@;AO)ImU!Re_u2tAYQ6Kd^--#7a1H;^o&<)hc zB1zV`JG%(qD56R+xodxkrXKG+{-wNKiW z=ozhD|N)a3P3(Z)CPxN#byhINGqaJw@%*k?x}B9S4q{OOj?>!JLXLU1bV z2=_M|Y2`Is+P|$INWu;K?2sPNd<0gWfP97=bxQiQCM{iEe3dW4h(mHi-#4?NtD&%Q z;Hq`fz6dc_z!#JQM*nu3@;q;r3NKTO*4t~F$n<|f-y0L>av(!nXXfVh;LoBOmOvTt z`4CN?GyNAgx;H7HlK1I|tq@co%<(Zd>xQ%?fIi>s|AU`yUW{cREkwwnRiFr$T;?gU z%`)uYx!S@nRPBX|QDRNbi!8?k=vy!T;peIBe{0)vp@k8Lnb4>_iU&C@ttpm23CKP` zEv390=>9lx8<=bOb$Dsu{eB~pM1BNb2>inx9Po*>f&Df|?WRZ^Gw9U}7DFfE6m9FR z(kN#64xP_yS6T$dE9v6Hjd;7{iR&MpZZJ`2@WZVIK2mV1-e_o6+_LQ< zrFnNmghRL=(`_(Gr=|lJq);Zdd>__5>#lN?c@g@Yka`HP>7W#h@NPCAL5_VOk~`D8 zW&AE`G@MpA^9}1XW9ph0F^404ffr3FKhXGSWq-uhxM^f-41b%vF8h?bGpoUz2A9u* zC{$$JJFm|rhkskxarKJbUhg1Z;cF@&xBm!rgif#f>2*7OSH~;y&$|vnu%lH9IB%cn zsggj^nq*9P$I{|oT!cI%=Txp9jS(-a-}K+W9(ob)>hXL9tT?UXrUn97ABbk_d(&9> zcUETB)D>2&?G)EIK*;@ZDF zV#O1sTO}h>{&en^SG(kq6UEpH zZw1OdNy{C+F%JC16J9m9xz~s!9_}tkzFS3@xTWHpIh*oI))pYtgMG8I4~s&a3+_a; z@8UWBD-xQo?D@BfoGc+D$a7F6(H8!O}qttgWtjiwMKH2RNL!3uK!M~@a_{s zsv8L#&rsf-zn0)Nwg^Y*lnF9XrLW&Aeq7$_r13&{=vRCdQ}D$=&a)b&#vaDnSC+-D zJLk8ENjgeE+-OdE47WUG$&JCdIyEyvQc|2 zljeP+lfrGCi=X}N#p^o5kLd}s_i8qPC1N_u8_amQUN)sYlcl*R8jF)$H2JqC`|Q2@ zQ)fJL)>-K-)Re&ocVIY>4$VYGKh|4yb1sla%QoWTPv6CK-(;HjiQ0hGWnC(wO!}fp zAAl7mmquTEb46C))biOnGv?y#^y2S!Do{KA4!%4d-Y@=2hghS)h~3HwB;OgQQ$8|9 zG{drmxeZkddeblV*6FV&!LOsTlMNuXDx$i*~*jk6PT?oZ(^<}^Hc>m+=i$519 zFNe8KR^l~hW?I@EuI8z!*0ITFj*pYO3#?E1uVXfvkX{|0c|vUHiA)xkP~{*be3%4B#fc|O$46%Gk7{R7Gfqq`uwXCdK%^Ok z@jzRSCP&o)?QzfwpM;j}A!gMb(6_%WVosz5#}e|&?#b%oEuip~-KlO7Bb=FhLQkB> z(|f?Ilr{0+kX*DZIt9nGEXpww#oEeN_-Z;vukVcP@+@lI!}gaCiV!Jel)tsyt$1TQ zDq@YIW|OO4tBL1i2!*m0R=2Q~MuSjHVx%h=6a1xNP$=Opq*f!p7|Tc2;9;Oo`x4Zx z-+Gl2KJ$+xNvzrOGO(G_LCb>fUOmp21NDXhb)x6 z9ZmR2LAIsKhz1R^N&rrD)~~nbR>Pu~0SCb`u}A6vX<$Ft_+^-1YReyrTQk(>%yEK@#tk>iZ?l0tJ0UeH zvV4KagEWSqv#0$v9eY zJe%!~2kV-~K`i0+okj=sOr&oGc^nUXntHxQ5bQ-5JQmTJvpR0+2Lsfv^?1>wn; zzNS^(p1`%37+u@X4+!Ufrq1L45!qgT1*<6vY-hIY?34NYGuOHRytq}sGnQ=Hvk8T7ee!+|P*VjMYNRyz&{ddWx>-rfo$hxZ;T(-L0(k)mRpb} zipk>&@Cx?{kS$K@AqOZG<-;9lrvx8qz-D#4ERcSwko3%tLF*(JYUiTR0~@f4V#9bD zGRz&*4Yw7Qt9hOP2J8~f6Vm}mYU6y@r??i#*X;Wox_j8QfhSfCRzLrSwEU(ErN%wu zN^-e^y|c)Z8WUOhLVV@aTie96h2w9+NTO{w+M~DLH?e931W9Le`;9vz6EU2MI-7aq zbwA+)kRx&Nnr}QT=sx1u6E*o-(LRewo+OXJw?bK3y_NE92J_X)_#eoKG?WL}L_Ovs zO)$6xmZo|dIHXn+H6U_D5#P_nS+E@XXJ0NKby6JjjOi;dtXVf(g#4AWkIEFhjcX-Q z|LEofmhLQoM_c{Tkvr-Uxyj#v#GmGOu~q|GeOW4P1^kThK0v>;q+MO`{S-Z zSe2$%86Rei#Ew3`ethFs8Vp{YGFzJJouf^Puv4K@M0J8$Y$Xzfq&NHu;Nw0?5n$b8+fmcllQt@|9s_C`k%px_&J;Cvc-Gd-(<+oF@H``sEf z>v`q?L^}jmeGm4t`cGa+jz<^w+}>AD+EkoV8j{cP4)2}fFnp?2-zUSt_fOSGfF6(~ z*2U|Vg7dShJdf&;->qCq`V98QU_o{>q)~l?&Nm|OVG=`2bvs<@ymP;4uWvm%dAS7M zXgD^=K|m?H)gINaI%@q}xN22ZynW;QwV*#gPm=2U_ch_)WScJH=CT=gh(jbWHS+0D6)_hyoBt;)IfgV4B^ zYiGh~eW{=~ez`8-{d%FCS@8RR;$*z^Yop)a;+Co5mo)Zwjdo0@20dlW`_S)ZlfU(Pul37UrnnEN5QI@B}j|u={rTN$RlYGhB zQ9{#F^ewrC(OsV;%V#*y32z772+sm$o1W_g;gaNLGBl`O;d(MR92dH}N?sOWZg&<+ z8*R%rsb&pxS{ui9{+pC}`lH73D`QS8|LZo`?gHW$&6#J560aE6=7E3XTClAY#jrT6 zwSTn%t7iwPZ(`6PI=y`J2ghY!d`2btMFYPq41UadXrqbx9y*k7?&pS(H4k_}J#2?! ztX6r;d;Gpd25Oz5^J>iV7!gljQ35RG1$s(uRtWi6bx`!?#?X#@Qjz?9qze~c3ZXb; z^sBo_&xl{hm`&D3EhO}B{G74xUspR{O#6QLYX(Ev;l@Ge6_}#Rcia*Hya)v>9<|MZSLW>M=CJgBo)*aMxIO$C-6M}9|p6clCo7^X*`HM+hrn>t-BF+WyJ oRj>Gd!ABlFQWf$4$o_pa5JGLT89V1O^xvF(|ZY5370-67oAw*CocGO7%dBGMG`qfaz@ zxD_q!lr`aXvS76~D?_lFZqD|H?H|#vEc&lJEaq!ijT%_znH4=JT6Yvf7<{5xP4Fx_WehaFSpmhjqRF|9>!eHheSi)G4*VX#0$d*^D(Xx2a(#=8H$|Vzab;s@5mtov5afgQ? z8F|RBw>-mS-?M41n_R;6*FS2Ea=eE;UnSVs>;eUHGG0 zZ(Z{VFyMN&G#}waNEZ%69}(d*RZ74w;YRypdp|=(gb(EucX1g759IiJ7*r}F3e72m z>pENq+*rxuLELq;~}4?l{ZzM zlB5eK7zuj3BOe$ExaUs{%cu80eZs1ocr!dQGEz1*56wUJ^=~t*n1B@MIMn+;44QF} z#mQz#V815wd^jS++f_qQElD20M20Y@%D+q}H{~E^B}yOK91W%-TidmVU6B@F)=h#e z{a8)`SLWoTha5j6fya5~^*n(JefEges3=&%5;D`;d0w*I;KqmTyuZ()J%w|zuk(f8 zTwGqB&Q}#yfNSaLnLPjd2DTte-^CKxOr)tXZ2Dl-}d>u z{*IUYV$y)8a10V8^~pU1mZmw&N6R;%yC zpPic$rciu|#@~q}G(Mg@02Z)JLr|EXSLeU!>E-W!ds70dftRVKt1H2G-X67G*PPh@ zjrL26y|(PRED&A05tY;4Zq`R=)WVO8P~+4kv+Su494pTx1(zPmDaMw%a(6m@`EimI zlYO@Ch5W1M7+51k>jmpYB?uxS3=A9`5Qs)O;rsc!XQ(RlQ3xTGmD$;0Ve;$89rlwA z&NLIFxm;W?UQA55VVM@az>AipdE-lx@Y<2wDTGQZG7=dD1to!^HTdE7a(@KVjP3PuLA;gYzu?BXG(*ziNouyYsOfn5R2?5pp0poc$hP{IQ zkcb~~v%?dP>)Vv7&y7uTb1N#2uapSTbFpO}dBhwzI2ahn$ssf}Z^L@JfBc!7+u50$ z`z}g3*4H<{#dBB7zvYFMt!M!&@p(i+ zoPj+;6Ik^Q{m(D*#t{0E|E_S>)5nSWTaKkkPwX-h$S@ifCJr&sV>)i{_^cfq{P}a# zUd7YIbA#bGd=kXMBKTsiO@xh&k1(XF>gP|@?0BlihK8D&nihY;Z!gr<{)jZUbRqwJ z@f-SdU6k;6S-HD=zCD)r@E9=ZsLSFUqURsyBTnSFb|ml$tCu4k&UCkay&nB6Bt1)~ z$qmQ%O+jLPOiT$~HkPD@hOe*w+?>9Mwtt!4^AuioC;DKXh7VR5j}|Z0 z!5t3*FI8lq7_{+V(H^=ompE*zzh(52f5o-^n(D$!|J!*d@?}?zv6AKa3!)yU(}{_r zqi^gGkdFI;kM|EZJ{etLGh}$*5Rdf>}itCtZyz_UR^3nSq|3o~VNg-SXpIOpSLs^M^Ob zW6Ni0FU0KRFhRK&y#3_UE`&te0t z>y7(w+Np%cQd_X!4Jf55vkQnNWw}~}BMR`6MMyLAp+?UwF3#y2tu{aX_|XkTsTH&N zu~a!=B^<=Z#%I2TOuiNs9vWI*eR?{7oQ*e=p-xWH79Wp|fq@Eb zv=nnr3v0oBH7bJAwd7bL2I=XAhDRc7V_6|WSXk^h6%>wD1}&;Rg-hJGj$@@W%Q7P9 zi*{f@XSEg8SF1#8ddpTu&~CRmH@PC#`5prT+<=|4%N$FR}=b1cgsVM&zRK z0s=dkg`ojGk)54YoRF^-y?-V&A!Ov_WLep8iYiMrbX*fBLTPCg6#}mC1-k00OsSBn zc^&2`1WD-AiJMuz6ghG9;<>MAUh4GyHV0A9Sn5FWuV&2X+S-_y?8QHoLmS10VtNA9 zmczprx2@LwG+e>avSr4~h|=Y`Sy@@|YfH`N+Z_)?5GpDT4hacROK4seeO$XFCxc(> zi#t2pbAZ4jguR7_Uwa5$MIhU|zh}{V{~j_|LnkgSPU*6Jj3fEx&42${(?Kk_csT>E z4(4ke(|7lq7cw$5$}aqUsXhz_NKi(6)MZJ9{IsfyK=C(K4c&VK2MJL|q843RT%5#* zkg0wu(t=}TD*M9Bl-ZUq3lH_#@!8r@q!$r}A75IU;L>x9j0hNf7ht5_w?tJ1XS&_V zM~!W}KT~0}zK+G?WSKxTaxn4qb5fEL;(+oF6C8MbRy?+Q(eaQUzx55XvJqapj;#v` z!L4m>Zg1~4-+m*Hk|`wd7s@OxE35yH8q&GAI59Et4B&>|EXM-gqxZEM1;mbwVFP0v z%*@Q(vSi)e@bIFdHo@3AbBZM=R9S)po6M<(&L`g!aWRrrWC!Hz{#c5_N#iF+n5OrB zoGqW`&Mc(Zkj{LicVjAvFRWePV$7bRR0KCZi^9NKQK70zK@s^5hkK5f41f|cOj}=H zPfx{nzguRerezBk4utAeJ}a-+dOH<1=+89QzZihl*9e!6}siq z4kpGlG~GP{&hQ15uD-r*xDfHxzP`~>&euiUblTKCG04;qNL8c2#mIkU#ad0JNLT{? zW&j46+r;%8x{0pvo%2BzOlo0 zMB;!IcjnR@s##`cTr9W??Dlgtqs7C;M%Tqf0RaI%K7L9u<|I#_G3$_Rj4o1SdWelb zyIlbniCw13r)=kUdSnE*CSOp5sW7loVYo4j>pXzE5Z~&ZW+NpB2MP)XhTWX72wbA# zYsE~JQmtLj9jW=n9-HSH%BM$%5WTDraDXH_P_A!&o|~|uBV}T?vUH(+IrXq{7$GAy z?eRYGv2Yw(H_#`c_f#oWDb*oMBO5=Rb8>WKU}&P{!-S7&ZB0kl+uP_uNSKnu@oND|{BO{ZG z#OiEWRMaw|p@3SVqoDI-LC_u*OTRC#%e_{=r}bCi%qBdkDQFZZ$;0rXMn@rTf`RQZ z7+?W4zOM@2V3WGhVoFg$gKllGGu{e_gg4-xQ@xMq)vlnw*w)w&;_5eL)&uM0jm)@9Juq zk{F`U{@<o2#eWR*ef^e>E$}i1n9l%2{>5M0H-jhSy@@x*w`SWcr;^R)PKzM zx3rXz(Z+`?FN=YQ?69@o+%RrK52>$@i)(A^^6>Bs_v*R2%FDyXh6swZw%+}P6ig0S zt*=Lhx)ny&m!Z)^3pGvyDfb-&I34Ph=~CgTQwBC2`0mBi(jw1@1qATyZF2ei^G71_ zDZ@dFh8lsK;M?xMT<_o;hqdKSMGUdi2=EV=E}Ozdl6JgiG|;5YYDI@rmCenaKiIX0 zw6whDk!4R;v*m=0I}oDNdw8FHY;5f4`1Hw?>e(|=Qqr4)S|Sj}?4ag&2pS(nU})U= zeN+GOmA(qDZx}63{?p{HS+J0h5J;)PYmh(zL6V1MoitX%MQ&`9#RchV-{Lx2TvS9$ zOYo@2!6y*Z2*}h7yoMeMB-2<&_EXP+o%rf&>T$#EuCTkS!{xh^C7d|<5-rBHCkOdRU_w+^lJ4vQ7l-ZMtPfijRoELIzbv99=78`yA z(V<VO(W{QJzeeL5zz84plVyy8le!$qwo#N*Sjm9rR?y8?5WH|R)WyaXGcE7_TRU+L} zEiH?RdU_(qd9|DjISQPtnZ1stxHq~!3On+?Atxmz$B%(yoz4;4`jjmsK?UB~uvL8(=XZJ75xj3GC zaJ)u{ZDvrROV?o3@F4SZ=!-P3riR1S`4pSn5}O*MAw)R1Cy&4~$Zk@x$<{Y)Y?*_W zI{13nnlT9_GF&Ioc6eJvaBhyIK?XUy*Mig71Pl2#I4FPfEL@dh>~Bk9$Mpqj1bk>$ zC)um4bP*3UBz8Yf&~pk1AS5OxW;9u2KvY%ZKt!V944PEcSa72ul2~k=78LXi zmlEwf7OcP2{St^(%iq~ZSUAUB!vzX}f=V_*;o*mL(cW(dQ`1$$y!*^PAZSe62_-9FSqDq0y&WYzKiBB9_ z(AwI%$jK$0SC=_|aWQz+YBIkcC2DA8r}@ANKRuC^smWNC8CB1hjsb~A6tiMaSEj>- z?CkCBk&$wd=zj26J389iI}jDa!a6ZNl%<9b)tFlpxeKyn^X%~})6wwQSDSM}w{}2R zZnBu+0F8bcqM@aUJ3S6@R!$QTJ?ly2cylpaV~xwA8{^`#8Tq=Fi#p7Col-1B#=Ah&D2+iLHPD4hTqAmZ71c5nys& z>o(WdSFk16lB^|dv!pN)5TNT=X_bNA>t`(sBO^OI^IL-*QA$WQznolepZMSH!6`49 zS(J(g@_@R&f@mV{?~{`bmnw2hVV^MeoibHe$}7QPoB3^SrmN?SI|TT*vy>K`n8E9WMLsKtwp$ptOV8- z@gsM3LNK|C_{++CB zH6y$qMF^5yIlN5r_)?)AV!ETbx%tG>a|#MVLc-~V+Yy27(Oj|p^_M9FR(MKKsIRYz zig8YPx!NaC%DuhU*YWY!*PlI;kqH7JacAJ?7ZhZ&+~6!Dlbefx5b3YV>*iSRW+zvu zgoyW$pQFPV8HqV4%eWsuvbioMeJN%9UEJHQiobp3qI$+>%+p18rnSlW)kLAV_0EWp;e~y_?VfQ&S7h# zt5dN4qc1WlDq{INTI$B$en3EgzrQ~oep2M^)YLN8;lW+ioDF(L6dZV1I0Wm(G{pv( zow>;|PfwwANs6?|Itz;|1XmY<*CqxA*4EaW`;~fnvr|)3Bn>a|lxXqL&|;07-M61W z{R2G9*{I0!vb4ERWA1W=k$~$;i`M}OH|o!|U%O-@7rZ*mSv;<$#9qaxYa=^MAI zS{`TLZA{t9Waqog?TQ9t!nf=u=E4lYim;`$z3~XD`w3&n3&kvS=P@t z-7{6_7u$2YUUO#-A2?~}k6G2sJ2glp3Dz>!QsteC;Q?Z}3ccdQL;uc*jf zzNiD|3?ZL`=9<&h0Kg5P)P*e z|2-904OfEtU=Xd6U$aEP*ADip2cmHf4Gf1OJ*>{7LE_|Tx;`-NM6(fOsxb4hEpdra zfJ{S9d_5viRe6~7($dnRTK{_nFUikbN}jhpp;Jm#99%V}k?O53qK5uc-+2ssrMPtU;bhKKw6`>k)*!2-{o zYHq-VWn%n8PFh!QydoU46*-GQD>k(c$0-nnHLU3u#q`5sE_iHVVP>YUuZlk^#L;(h zG9?9;N>&3ct$VH9n^AB~ThsD_Z`}Qb7xqj$aPFUP)CS$|<~}{`C}?ZDHyb|=vMeuC zP{4P^Q&3RAK9l`(xL8ra#ugo|=mtk>8YfSmoxw?B7yhQ^86JVua#8G%Ln1@mOt>ad z)0>~9J7u|Urv4g9@FpP>FJ)e{5MZNEN&-GW=L0; zl_>P}Ur{|h+ilhCvvU(;kRK`P4LK^Y$O8i#T%j6c_8{$I)$ZB<;xgq>_$OjK0V*yPhESeq!#g}H1|twNuaI51m@gLQeC zq-b%vvvX3Fn_D*a+pWnMBj#25XpT_8Re5D;Y5VQoR2fHyRjv7Aug_}4a=u!Qe%Z18 z|7jiwW^L!#7a1eN9|oNlDgAyd8kOlV6Qa8wCna@BCG9K;3Fk@|YHU&cBt(ysugK#7 zX~)yk(+dqz=gS)k-o3F{QJo8)x~=DAEkOZ>3roK*S_^g5R7Z3+r04s%Ne?727)(=B zz%t!1Q)Jk+&txEIjK|(zSy}gGBM1`!WVl(iM%MsK96E6oX98JbjUjZsYtG zi_^w{>zkvj;}6D-o#W%p&EIg6Iyz2H#yMKMhhUp-+bYUvF%!NoD|22{R<5ayd0$i8 zaep?P>DuAtm3!>b=n|Kpt`hk40RFP+clS-7j`9j;J3Bj0=O#V$jm#dspKAqA$7!o= zg0#s40|QDD9kH=2dhYI7*-4#|C3H^Wl7&DGqJv1At0(9?;ciGql1~38;WYM1g&!Q{ zH-BVpY`ncqDZ@_h&&R~?E+&P9VAy$Ui-N*qRlV);@9C#J|NA!>7*iFXS?Mw_g_9?t z7v?k~t7v;EMe6AI>J>|Q1o`XXTV(LA#^URN481lZ&)pLZf|ytZ0M@lwc%U82&feZA z{set`xH+ewfZi?M9Y3v8<>i4*3!<`ZYZn$^pOPKhT3Z7?<6%PK^puM$oB!b~osJIH znkyu9bEl-6m1=y}VfH%2@~cwk$ptNyrKPH>SABVTR8+!PQ39+~q@)A~KRopG1O-JN z%6*K-);C4MVs{vhCn3X&>Fkug_$d#A5uH#cL2j1MBm1@&BYVwi8<%gV{Y*ooQ7r+qW3z?0um z_V)PrMMW=P+KzQs%$Sk`VZf--W#wy`-)XO&>CK^QP!K*oKHkTo?Cc3LH@ls!k)))^ zr)?R=@J%h(j)%uPs$hLHGi_}{Lu1U&nF=K(G&D$#;OV~E(<~G`a<_evuo1`1q$EJ% zO)R&@y#MlrnVFUC`anrZNj2it%jcsQ93-xl|1`pa8g`?%NGDuU4 zzpt;zlhE`NWN@`$mb8~f7Ru*tgDQwlE?X0h_p`i#=!SNoYS9gzh zKz}jCL^mv-)nlaujrql;oL9SI?ffdV2N?>5=zkUA`=%P2TpT<5zO}Wmm`?fE+q^%w z0csK5@$rj|J_nMOMMaii4f28)rmlK=5D*?7#zeLC^>sWSgu_nzB_4m{fDC%n+824P zhWYFBXJd?Xa`Pi(I5YU+<#C6?A9+kTx*|c*6b5ZA?*m1pXEClzjBIQija9fY{eAKZ`MwqvCeRN{;d{lJ zP%BR{jgEzH>`ll{IdQS3`CtCv5>fM=Gj(YH2*2oa3vjv)8x#^YcK< zsZ3EE6FuKZNf0ZYl`&86xVLT}r7vdGgBLLJZ36nghk60-g#`*;ZoKr1l%(P| z`!z{4u)7x<=;-R}Q&UsZ($Z`7VX|V<@Kj<8J~_FgqvQU{N*uX>)5)nOWBZf%%k_o& z<^_tcSc#v6xw%DI@!(DlYSqOq|E@#+C!HXKU}7eqM6hWjKZ7TA`S1aWP7n)vyiZQa zpZ3CFs1q$K+ek@CQ&XyIG&d=!uuw`0uy#$Y0lvd|OU!)y71sIU`Vsi+HLI_y_X(mnZ_aZA9V22*Z1|6{joc_zMhg|!3CM0zX6TA zqMIc@CsTQidw)EeQG?Snbg+>)D!(BYl$XQS;QprG`+*cwIClhDl0Ic<+99kHiM!5< zJ6DY!0T=HNKt)A`M`QqwqQbWX_nqAE^Ivz^Ic_EnY`8b)jC?D1v~Tvp2>JOlBV%qZ zhFA$uK`NBwJS(Q<({{XMh|gFUTb1DD6%}P>=Hz5#q=tm- z&z_&1omp5EQ1>kG2r0^t+e^KyunkxHH1X3aQv4?)V%$uuDurv?>1O&TwV+2oKcOsr zS^3C_h^UTh$}jtTEA2HkA3uKmT8tR6b$z(l0ljvKL-tZ_S>0CuJ{0@{=Hb0Y8;2pnmYc6=KmcUN^Yc`=sFkIXEI+x;_Q#EHm)&cx zp-{8cF{r7QmZs)^a-WWuTLDlNi;L6HZu$JvHvn`&8jQ&)larOEZQdix4{KctRAO!r z2m^zjp3n8?&nTB-1nAs=-bj$xht&)pxuVeJ_qrHIM=L9Nc^uzEq`z2O!|KwQD1z9+ zykF@!bt017;8T=mBYDJ|^-F~3-N zMtl+UOi}uoU%Pv=GM_dESw(XtU!s+jwYAq}9J%ZFPkI7m5zssvWGs9tNQys zPwnlI3otW7=Gp@K<4syug07|f+8L9>#nz$_z=ghgE6Xha#m!4;778idF)<>gDB$!;2I zYR>U7*T9_q^;6&PX++w0C7;Yd!M5-h&L7)uZFS@g{THjjcLk}Py3C*8Yg;;jg@{^1 zZ2ddV6nyHpBSI3xub(B6%ZiJ^#`-gFyS?Z-l=c@yeEiW-XlT1Qp8ac}i;}#HGpU$0 zp)Z=Wjie#PWKJDGq=p?1UIIv6LtI^h=4^3NQoDHJ_;~#I3W#5LkYa0wYD8klpz3zoeePL*||g( z?tNjtkLh2+fibI$eO^f_^k63ejdnEmzcvjLOrn_H+v&=93X#CSKc7L)&MQqvM(P^@ zO_w~NG>JSttRYaBdzR zUS3`iPpwT5Tq0z?NX^-zf2xcG1V$B!ibAUD!mX8bm@mRL@!?olKRMM<3XU{kh$U<^F(QznVGGQyRAVIw%1-;B1p>00+MOtch68z@U^4# zdxLCnMh#L5aLt{Z0s}4n#Bj_^@d~UqNfml}djpiOE@tf@!Jpk@UWOqTwKlUx_i{taC2|r z$o0dbH(Hj_%0N%g$Vj`^Jt!<4U4@M|>d*FYAjN29e>XpSy3~i`+>-EEl zKh@v1f1y6K+KM)PX#GvIu!)VY2v*CU zDqWeewlt=uYII!{ zC;754E;7p-i9mJkEVksWU?ySTWpFtai{OwDFykAJTP6B7L! zj_qua>DUEaE-sgwPA}{u-pXo~!!fe3aB#2$tjE=Rw{1HryepU>iLF0)W6!I>&CSCj z_OMXD+$tmeHZ1IIR<;2vQOwAfh!dgbKh<=}wYX>V`swfX)OSc*(5CnxN{tgWn_Xp=0~kj<|!QE z{<~Y5Vs&=5zkl``)VZg{(NUPiYQ7s26?h(Vy6jxA(dO%z1e?Bo{r^fyhXU9UdJW931>o z;q177e0+pVEiO(^&wrJot`hO(m>506ur2Qx-{uW0!Q$zBk+022tgWWOjgSVc$LzO? zshjzKr0Z%B@v~=SWTZlZzE=m0t9cSnKVOa)U0(3kn>jhDs5m((p!m0GL=UA(SE8)B zy#G;JlN&d?!9>9PUtxx0>oi;E#JC2?@lVIl)t2eS#Tn$zJh8>bPsO|f+GQXS@f&fw zTUq(~+U?j%w7R_zd-z2s{4l_fA9(in4Fs@yY;0_{QD3Nd9mQBEJX~SdN?_Ni@DQZe z`gW{#O#JB{UmX*h=6A&HZA;6-!qa{K#r3+IV9uw!g*Fi;rWbI)N^yVREgcX52;CHA zs_!<_WLvW!RHUHu~?qm`IC&Nt`1nK zROPTR)x&K-vL76Ik$e1*x5G+2o>DSVQwu5>4^~j% z`X3PMQBkUgvrERHh6OzMtEt)8=n_Ht<0*vP5A;2F{*j8Mi_cbEiL%129qi$1+X0^P zFdN^W-n%m(j+LZz_Pi)n)zk#E@@Z%12`A*g{|E`Ktur%AuZkvNr?BHM4U_#)8kHC=SFU&04=}pG92yk#AD=R2aN_>169SwyV7}(qUHP>I}i7_z&vY~3;m_1#@h#L>R zqN#Oz%f^qg9i5eVqaAaW-%Bibs3%EWCIu@Hl@pW*hhnfKj=tatD5LEx4FFgZ2w<4|m zGYYoo?M~856dY`v7+IQU5x*whz$%=&sJTM`I+6{3R3tL;?d_f?A)$baj$U?J(+^gx zHdAmsGlnsUzZo}s?)DNtJRra?E%*0RP=KlcZLp%n{4Zr-_8SnsZOK23z6}GA2!SrS z{;chk?Bri*jY1a@0knShZ*v?RAT|56wSWCuS695z*bzZ_=u|DgqjY)cJh!$@{5&UV z0=R&em$4+FP<3^)eEaC3yI%j@(n$c-HO!t48=alm*bWaN#id8{wXRfqF1(AfSeO^r z*Ow1BW2B_JyQHL6Xa6%yU_ipUz;czV4`nMBYoL0>Hh>cP9r@lZ1RxVR1Lr{r4Y#5u zK`t(EWD9H0e*qiquSvMXA#3h3UhZF0!HR$IB0h4MJwDzIrGstoUGKub?a{@n(~$yD zb`y5SCM+y0%!5NdN3w@6a&uu|)TS{)b~$n3Ul<#Y-~Fpx&Wl?kj)!-aIDdb`_{m?C zIdYL7sC4ksn7jeYuv|Yxt(uvho}Hb2ciMk`*l7LA!b1A3+UyED?o#`R1+Z@6;9zBf zWmuwUHfGPy`Z(dT#K=-!jzA6TTxtI7{YP?3MGC6*3`*@h?9>|=B#4vY*V<2(snIYC9!%3LNrAiK&C+P{IbLaN z^-)((PuJ7Y(fNBfvhoB%jJj#Ur+ByPMl|!G0+j>X6Z&ucY(ORzyI-ruB%^syKFDi6ZtYs`I)lP~+ z3>Ly_WfQ#X`CS#2mDN^S`1pw`>Kp3n8X6k7Nq$=LtWc&gJVVvgOiI$!RJNAsi6i&& z%FEOK7ySG~J~oq+{tssqhf<9_j!sT?pDUkk#x#ZW+|Onz1_nk(Xz@U?9ZQQPKyPhX zSd_Rw`M)uUkbamDIaht;LN>Crv?MA4J-oL_OAC)MSOrh53j#AkM-4fmKw6~KBz_0B#n};QgISnY1D7~%*m}rQF`RZu%^x&|f0`6UOG;r9c zDjBq@lkxw^AYDgoM(qHuoV)z5+wwYoYYp5ixyI}3AEjL>D=0%k%mmnh^ z7B;2u)Z83+0K>m&>F5|-S07gb0LE3M9ZieX0ldY=SzEyQ88BJ1~H!q^|xdMnka>H3F#n*P#g4{^I@*7Z(@25Ut%GAQs3wldP<~y>)fv z`|=-u{MIM~#5|0oSXn8p&no}&rM&#h<5lC4OQ8legqjZ)^>qYf2VGs$cX8%5sa$g> z7F+QDSiirC^t@KWxw@@n7_0>hqWs<`YwHPA!oV6M;OgyJ*Kl_85;%N%dPKYd^*1@W zxH#lEM)~R$3JN7oNMs}o&GkejxlbzR3xH9q)d~~Z)IlrpcaNR_>oK8^9%`eP`wP=Y3Q2L=`!#Lj;19rwhBbdxz2vZB|L!H6cBjI&sC#bnvH%dWbWKSE+)F*J~p zEuf&_xv0tZJGO#naG} zV_BI8$Hqp3FD77=yJjqwF*^poYKTCjvcGRu;Ly^XCBM%NMdDC( zH6%f_#juh{)oi>uS3%7sv7KWw$hh5_*5~yGY^E|FeF>?cJ>f=PNQ>*bE>d zfDI&nruS9rGmV@D1qFqLg@bSHU%%GSkc2>B9bkQZ6!xwsm@xtFkndtDc)#puXkdo> z$J^PftJ2adZ^wOrxk0cQ&D;e=B_|m*5D;!|rG4=A1+36N#~n;?;^zmLzuquTzTE2# zNN6J?1M|%QlmcCXFa&_rlf=XV>ibvSUu|J^n*~g%DASG-1nMt(CFn4N4Ty;y87VIt z9z{&}pU%csS{i(TRvBm|cQxwL)1#u&({*EtiG~K1K>*aBWl?yDI$*_o>7t~MYWX65 zGY$1{$IjK&@owj3D2$STyo<#|L&M-Spp;#v&@STOs`rja7rj}0+3>Y=g(&dV?CE4-13jx&tOigB%?uX4gVPLRd zU(VtK!{AGri(6Qh1CO5IeHl};D7(w$iY*X<^!=@9UcLl62p<)dk&&$}IeEnlIIAG) z{+B3pbv<~PYv0E$e;1^gYaE$>*Vj$(Sd7zve;I5HkkcMpXe7mQDVfR*C(%bh%hda~I*+v(% zkf4b?s4b;s*CPY%Oit!)A3&5KKLIJ}%9tJU@?{tZZqnhEm0A?$(B_uzr{$&B-scA! zLbRmwzkZF6&!I|!CqDQx0kp!V2NLLGK__8#BP2|EIGFfM7FaJUE) zs~#3tTY!oX;6FV4FROD?+*{YqJMjlNpfg!_-L5g@hZ}Sc5#RF>7D_s!Hygv$1c)q+ zzAm4zFfT7p=i;gaP=*mDWn>)pD~vGvF86`9AwZ>15;;Fm*3j_fON;-iI2f|{;|4)RLj!O%-$Wpep3=kwCOvojmD5WH`za$+>`YO4 zFrET%`Or6DpcJniF(cL5#k!#WeJu}YAocV-1PRbngv3m=lGD?3gU)F0_igh@UDW}C z(Q%NGk&+4q@!xbN4}*H15I(8j&Um2=KE8-gcLkA|O_=nZ-N-V@loxuMHtC9jHHVlO zC^iBR+tI-5T7S=;{6& z_<6+1dh_7mXa$&WQu57o5GDU7T?1|u#vF)j#3rAB$;67r$Fp=Sa(?H9??Qlt^8x;k zjdKo@?hfMN9z*~Tt>GfLZEM?qYzsYSpY8q=MTLjo=$eo~McMAj1o$>SBcp0xJ3Fh5 zdq2vtnVE&#HL3N7*Z84RQy$yxH(QIY3i9smF!J{CN?_+%@HGXmiih4G_L6x@?m8r- zhzKO4Na0ls;?cY|-)A8RDDjlbt;8Yylp>xxC+0nP-R(gznzh3mArmuY4AV!me0tZ^ zPp)VJFiSkOg)gdoEiC%u|5+^(#D)F9%w0+H5E>$Xwmgpj3b5YR*0!~Mv?Ie zMr|N5&o!SncE}xrK@Gm?+3cAwZ}HMCPLG!D?Lp5x1ruCnMTC@qTOuW;tgQ4ZOnLlT z4Q3}A$%csD9V7&MUNC+g%DpKA1;3t;ugV@FNs!;>yF`*A&9ms99$1Pm!NxK$@(@(9 z@!*M(12Q4=f5ygERyqWb_;^59K3y#m1HX#z>BrRnR8>uufs)iN#L3Ca%kRCXSC?o;|Cs z=Hh|~3Ij)>2*UX6EEpg*KM5p$r49>VzJ*z|Dk_i%6nA!?Zf7|EZkbbs`T51! zQ?IUJR?Mkci5nn?+1o2c*Yo9ce!r&7$zUXKeDDhybV*A??*+EXDUUJIJSe*L(NA1t zAgSAg?p!+5t00G{leNq#23APZCM(kZ`tf6Hkf zwB+W7D-+1DpQk^%zeElLomD(l)PS*&5bTaN9q{pWn8DzEzC?lo=CE`pGTCWZ*#Gka zz>3Z0Q;ky+O6*J^v2c$7KdvLi#stjpiG-3bszg7zYsC$jt=!%wCJ+?KUPu5l93-&` z5^Bl|VDL_}?CbyJWk}NJj*d##-K>6q4ZYAJAc0r&+xgH_B#0vVBp@J`dwUbH;`VAQ zzP{GIuplMb0YqnWASs$HEraWFi&wdF_oRhw-V@?BqfU0KMhk;_P9!FPK1rQJo{C6iO0hD%Yz$401 zR4PeH;YqN?6y-oKDJ}+Hh__vm%W)PKFrw|@A+AwjQ$8*ZFc4V%@v17ZpkaB2YHu&% zeXu}C+`m~fkJ$%(taUcBvXTsmc@-4&Dn_y@C_q*9)hkG4sL z^29=BRE0jYV778~ACH0pScA?d^Jx&~W@mxJ!d7?$+2+BaJ~UKH>hTc*6C{a@Yq~G8uDKaFTk#=QByp!_3r)bwfbRURH|8lAczU_`dbek1 zR+`?d%Ns8RCMUtHKeO4{>EH#43B@j_8k~(9`+Aq#odIiLZEs){LxTz%*ekraa9Sp# zpdcZ6&Ps4~6(3t%nkVFOv~+Xs<)wl9!;{Je(}oRps+6e5lz`cWs(j~|# zz?cv`0PSo|yh9%wK?+*4gvmdAZc;EFmE3_KRLNtsd_=T*)I`%)ch&`Tg3wqX*)zc zwoZQMVV{d;1Lwc7E2^ z&3xe^-p0gWprfM?j~oY!>3nfs^gdduMwr20{XVb>yMJtKN{RRnUsTMEi6W0M&O%@* z8w>6*B5cNOalz1VVIlZtC^Yoy>M@w7R)JCp4Eb&*KzXOt+yOA~bYf-y*3{I}(!Mg{ z+#m0}sHLTrAGvz&Qa+43Rri9Lnw6D?hWjj zsY$NS>M*8hV+rvJ>8kqwe2&SS6@gwpYY;x8VQ8Bq@Nf_)TW@|d5%G3fU0E_ier(hr# z#zf}1a1NK=^2*S$^f=bZ1D;($cO~GOu90KVo zd3iH-o-LiQkSxBaKN)A`ofBUEX7c~hbk$)|ZP9*c2?1$DO6eAmZYe<;=?3ZU21#j9 z0qF)28Kk>Gq?@5Tq`T|wx$nL62Uq>>$IP5Ld+oJ;wXLjtE@&)8#>Svi6oJ^=v#}{E zDvy|%+jGnPVPYF5AE2dMI#oS>6E40xPd5)k;$5Al7*eYKs_upVgS;0)&NdG>u)JX*^8ywajg ztinLl>gw~O6=9#TF(xJ*9l(~_yuxj06chv+k-N?b|Dhp!dkP8>5fFs{E&xN4lOrKP z;G)a3OR^dO+5ufDH;thi@Wa(qlVUjqw8~D*VFK6z;96HpqjppVIl7MgcObq zzK6m8q6X+HXOh{oL?6##`ue|xa~p4iTOK`Gi7Rpc`yOyDEId3M4v7sVZK~Yd&d;l> zhee`T(;%#)FoP5JuTb+^uw@`i1$mBzSg(Xv9{4qL!Ge#WDpX>QSGjw?_ zC1p2DK+1@_zHVl*wa$^^e7&Bp?!6jvd?7nF0*GB$zdTR?RqJ4&{J-(Pp&@&nX3Se! znSp!ueH@X7krnz zxk*i%0{}S!A3ShiSj1-q#Z-v|-9xO?;z;tDOdN$!odYGLv-AFbVF3cDaK*@O$PakN zkP=+6AR~itbQ;|8;x7`

?jW<@&o7d&|oJth$=i?1>Y-Kf_l#y9BE6$Ga_{unrexAONsN8h^v^1vx05rz zX72E|dt0XtU}T}DCZNaf?VX$)EUgCL-tXTPV~ZlJc1tbo?dxWBlig8kYn`2Wd75SZ z57)$o=|U-Af+RW-5#IOp4Y9GZG9oOO_hkAU$cQ3}{g>Im=_)AkpC!@@feJWeW8#pE zKzq__1OY9jqM|zwM94rv!HyLI2HPAlqiLMdH=61|j-nw=^&a$|&euT3mc~Vb^~dM1 z-FC}k(d&HD@bP9+Qz=~xL!V<#yU0fw2tN7S-z;Zm1N%H^VCAX)4!|>*?w6735^H(= z@m`mp?;)6KAgj{_YdI{$6JbV3f;g)E{de!+P>zDqt2i|(OJE4-SJvz|(bjV0ixc@d zZpF=2MjVCmw7jyiu`w>L{U{eI>E#70BPK$0gzJUxj*uY#Ayv;M`rzeCN(yoW&$S?g zpy5!6_+B0DomN#;)VRBHH-*{MXJq_yv$6tkU2zfp$$D^bXJ>FQA)pSy_cs?7h8Bv#U*fum&+ z*A+rB!baav?tcdfRdsd20ZL87`+bLi^O9sk)a+UhBO}*|-{gA$6GsniZZA-Q>3;F&%UXBn0@?Ta9!t%)mv!=NQwTH*$ znX3mG7BA<~-@N?;B8=OcGj9-Hl{d;}7-rKlGz7;k&(E!_0L&_Fzlhbw1w_RI<4U!) zZyASDQzxC9t>B~W?yjKoI{cHiUahY80wZIFfd32cvz(lgOa6AZHXM9-GefAR(}~lF z7VYTd34SA1BO+JIAV0af9J~L{X?-mXW;u~eK=2e^&+;QpmcxEA#YzfO=4o z#l@wi#jn4Sp`e244td~UD=MF!*8v*`2OBjIAWm8=!7Gws1ORD=K%QU*-v^@v#l{xW z0ZxZvcrjC!g>48_tkg^q7t|zCfM$Pnx#om`2^)>l_iCkfsiUGeAz{*g0YDX?*?Yyb zgA;Idf4JnC_xpFj##CtwTC{-QlfhYEY%;@wzig*)`(&SK{I1;4vXs+IS-fnB&5H;p`702s)Y7uJ*e(v4pEsJSN=qxU5DTO>8C`ffNAg7$KK?nrTt2`Sv$WLG(wd%q ztq0Px23OQSxOsTEySvV}+#mM<%}Ou*un4>%cs>|`@A&d{r5I+gwikHne?6(g+CFHj zo*W&Gk6#80f74uxXZxedNi0*eI*y)(8K;b#OM&9jS}8~>wr!Na@j;j)&SY1262 zi?3NfCP_&{LuY0P`aU6n0xW_B`7cZWa&|6mCHFni_HV2-g{!ac`}dx8#*P1nKE2gH z4tO{Pk5RzgyoYTy>YLizwkXHo1$FbUs?J7{?2niv!UV)_0LsE6{wcHNu4ZlI`~+nneMYYBshGr z8yi53@kgieB7&a6XYaU26WX-?MV_txOjXFhbMW~|2%dKVIaPAt$ZfWkVc>NCct$Nd z11s2Ndt!5nwJVQ&YtxK7^an}wvb;{#Bk<`JCD+0`H^45-^sxeF*fU<|jh~vzckEja zwFD|ghooe1C29lnAOtp(lq+SnY{tqlntHZXIY z{u>PfmpnTw6B7fUBURIwv#+CQbo8IiO;7Kn-g^O2D#Z8y@D@ruB1dC=t0~U>~-x1uojVyUZ5$d=eytz$YAl;J6DY$K?fTr*)Ff1V)w`kL5_BD!_iF?X>dwaCV=ccU zB&L>)!ShmI-9k%tRzV_8jDkj@2pQ2o0H&8tuyHEoxg0_ur7}1O761#;;mlj;QE_M* zbrdccoSqsbAX;?lIoqyXGEhC~CI(H@^%jm$;7``xjiQH^YNY`QK3;0X_kfIfF>=Jx zct0jj|Nc9lQ(NGFBQ8r|S?j}Qn%nNrk_6fT>}L{d#k61k6O*#l1?q`QydNg5M-I_i zCQ|$Cb|p{M#$i@@Yqub%Vkt*eq%Jx0qN5blhBqAe@A8*`!h7+ z)u02?FJDx_rSYq77YfF_Q^m&n3=c42?AJb?QigW|@cFP2$F21HAY9J;)$c-EGwyBQ zvrI$qU`Qg@PZMBp8}K$s`fPOxiX@J_`RgVk9Q}gdeed7s{p}WLc`ZJsyeH$epRKYQ z->=Qn8|&@0uLb<#LO_7#r9-WcP(Dr9HPSO9i88SrgiDrkowkrnln)Bl_AT3my7u+w zQ^2WW4=QGUFtiCZC>gKg|LZ_?27TV*8j^@$&-$0IG-}^ z48s{7cCdSjiV)I489<{MhKmVmOVQ`QYv3oU>bI3M=gS2y^MQ1)epYUBEDYpf(cxNy zs;)O7r_ssT`D6`S4+K^1}xRUWDp96^M?Vv$Mj}z@d+>KOMD6(=5;cuS{l6PIPxZs1?!l9d^fRgXUDWBGAb&v z#*U2J@@ToK$>)$(={*dT2C#S@P5%pPES;;e+L_obYh4Lzz3bjS^X}BY#R!#rNtCBI zDn}a#m{Nfk5KrMIAr1JFuz^7>Z6dlYAJqySle>JHGO3wuPB*jsXPdk>2X=N&PAWLR zGBWQ5VcuN$t)ibGccXy^?>*m(b|c?6MzXj>D|+yKh6W(M-KoP?3sIJe-XEBo99hDW}Kbk8ZoQsb0XWw0bl_>D; zF6Zs(2?TB-E%}&?77SUreTISXO%BqSQOLy!lJ+v#=BxWT=_3=oXD|L zSYE##yN#IY=~q*;68M6}!y^sd$REvKqo>(hdYp6EyR(Fu-d;5O#Jxb6Za9Y-*4l%a zgWKcA^~9_j72GzxWlP;s4bT(*J?9($J-6>3o@Z*vL0U+V0$0~IG=O5#;z zdf|EJPgC(@cwzlza*3afrKM=l4Mf zVCK`}AtPfi6Y1!C9t8E+szeq=GY@3f%bz&cE5hanS_7c{8U1i%*nYvghy1@Zo}nyu z0G{DRjLK&I9s*_fGv-)))=WIrudC?_FyZnz_@7Tg?aMTF&q+xkSmQ;*M=RvXF5{tn zX4Yg&Yheh-1U&(x-|K;+R58R$EfklF3Y8w71bc>e;Wxz``@7P&m*ZSyx zWaRp3rPIX9CaP#SDQYPz3Ct=aSV(Avg%yuViSe1%H4cyWm(4zFqzA74Z;`*_;va81 z7c!J<$!4;3kVekfa)KD&06zr6R(+Jl=z8dy7VA1@S|7)ith=?_bO_6d$nN#@|YNjFX(I$AN}W+hNn_q^M`juolcSRr~ry{im8oi`M6QqSu*}CCa7(2lTkg4Bi#wPf&x!AGW?8wO%IZ zAxbDos1VR5P*Goa&-~Csd&LwN`oH zsyaC(W-nw&_-mw9zN*(6XW~SK%hq;&J~&uf3ITIDRboX@G^?5|wM%G2d3iy%J=%zM z!PwD`iLYPVF$OEKNOBEKUPaMDNsqW*j|t`I_TFFBpIZRz4$s6H52y8N49a8)_;2d{ zI%2?1P9?5+haBwRIwNEeJEv~|Hv8UQ6DNj=X_DIu|5jL3Sb6sLyk0W}yP*Gzz{2K5 zzguOXgr^IHL#^s12zUNr*Ecqhz$pz#M2PW7K<%7)<(x`z9Lg)-hSEXXSlV_;lhx19 zK({{}kXy`U7+9bhkuNCmhl8M-!*=AGSQ`h1l*~$(%D{?gNN4ZR(7@iH(}{1At5VMB zUo#-8P#EWCY{4U6rJ*?*S@fexxbjWN%_{Ft!4*UlXXqj{VEHv~br6u6B-=sedBEM6 zsTCaxGhY)W7FnsDd0!ZY3aNjwAx0D-L2X8jg7`PD{XW1wN1cg4)e2Ut$w2evXvJV& zWO-acE>d}V#&4@b)Si#$h|jn{6|jx*5X{hge5U8?h|d~ONX-c-{Y5)NFp08`oZBV( z2~9+d&1>IEM583(Kyjlaxl2_M>hxsWj;n^l$rA}ek)PaqG?q^F^;K?(oJEfR%xgtksGt~#8nmk$WSexdI_}~QQ>M^UVo;WATOHJ zZP7ByTN=KQU`c+3U=gZSD%}yqYDm-eDR3}MRW_ZRh8ECpg+p1Q9tZcAqDO77;wE5+ zvy&4O=l8}iHav=T@0N3ohx0lkO}Af9LJ4Szkp7z0ZSkGle<;55&wJKpuUYamEVe&G zksG?Sfhemey>{35wNv=b8^(8KIH)KqAABwMa(h7a>}wrnk#Wmh z*iw%wcB^XxO$kj}uJtsz1)(J9>_jGEDoi#u;PX^ocSSthzs)fkIpie)yhnWD@O=JV zZ!aTbZ?B+-Vk)=SNmqpQ8lb-n?q@7UMOk-uWB!2kf4&Q{JEGXHU~47#zE_U0q1uwU zb8g#u=`J^zzQ@8uF}+eGTqH!GbOpP9>LiXYAXV^1?vEy%;ICDwu-xx)x!LP;8PyG=qRXiW4+2|`0iIyvm@(6GVX1Be0^ zzEaud_NPKC9h#rT^}A4b2G>%h#ozclaK$2yf2iy5fjXTI@-BL=#Xta%M*&PJIHI;Z zWHHif<)-U{amUxMz<^8Y-qrlXE1_C=RCb-8f~YF&Sh=kpUudemEN z79?fFiCnG%q^M%R4>6sv0O6CzXR$RdY-2r+sDaqe z`gCE+yT)A6)`Xr@K=8TmT^;*B`dtoY2s$k0#YJ|5;l1J`W+w+$=e!#+llyD8pYYzL zfQB3~mg_aIb6xGynCK7@+$n zMw%}9l7MTN0}N_w5Dgo@`@>co^2p$d5Q)eyz1T1K)DH0@XSJ0K!A|eEDOoE(;N+TsEiKleXW+rhoLjffsDS4G!oheg7*A1eF{FUZ|-$8;??V|VTV8AU|+c!pFgq{2Vv4Q!Y4&IzYJeGt_|3s4>wlD*8 zqy+WjS6bjDa`s{ffyOVz`3eveD1!)=$#JE;-9P@R%3#D+e;3iY0w%M^2i{b9|oU$Lz{p04d|P!?b#T;wlZWW6J?dnnM9H~vikX^T9zIIa=ciUv{+5pe2HGi z`u~AiWhqg$p}!%=hJ+RWoc%3MWAgp%tXQqA36GWE1?78`MhT1zE8x-R*Df098>q5j zQQe^T7)X;*d6}Tv>kh=#+vncGV)B?eh6T9{pCHS*QGa5|MP6iAQ~;&ib4XkP5eB1N z9s(G%G1AXj@HkUI#H;OMbRmxeHv9~V_*~x>Wmy*gz48`6w5QLxpM(w-t3!yQz^fu! zRtsdb|MrAq2~piwzZ&A;za-SojxBk7+cBO%Sfz{@6n1FfZ6JDrlYm0umoFBXqn0F_ zFhi+aOTY5bBpLa-c4#=V2GfUPRn@E8kUZLdpNYt0+B>4SK1N7_1_si`;U8ef8rZF> zU2od6H}ivCsDaiCng^_!U`CS6Rkh-V1fyNZ-azazQVIf-#orAI94mBz@FyHA-|(JX`Mw;z zKJ`gJc}Y}TGX(>JEw16^^nr4`L5Y|*r-UBDP~5f0a%u6?cAbtN7f*@IgqF6sQw#!x zd0}f#0+)xPuK#>}9^fT%%{c0tkvdZhYJu%HSq2O$R#yIcB}&LAF$PJ$Y5{#~>${$} zM3z0)n%&)iBwWCZPfPpyHG>=jB^c7aJY8P2<1t>P^?qC=tJ?&aUD9|GlH#}g6Tnua zuS_{se^nwu9qC;Ez7Rx%9P*GT9|v0|u@c+XySq}KZuoBEul{ATX?oOJ*~QVa^O1T~&iWKupu0)tR> z2FN!Ocp;qNcRA3p>sBB8Vy1~7*V6jt?i4C>53)7!`?Nyq@=&55Orz3wb2ncS^>1W6 z&00bIXsksoZ4{+dT%{9m9h&=V>IV2XYVC!WmXa@mYvXNnav-uwN^(1jDj~D8KYyk^ zuelh@c?+oftt~yUSXk>U14C~gs|+II*5kj|0ujeCUO}9FSx6{1mVHemO5;Qzv8l@K&47~4|0aiVUPEK!X|st zbhTRXv8+YF9Lqq&W~%ve(aS>ZE6~d_C5qmgm4AP4XO}0HG;o zyUFJnUlpGKpYPBC{m-uLGW9uP^0GWlComC$ilxv7+tOdM1<{Lijp znmf}Xu6x~Bu2eqChSy;)EtRCdpR)4P!jiSXJlYdJ-SRnI-GKY*Y%!*4twoOv^Bw}i6;(#Sk*T_BY zcpDCWeEhgIdm0q{n~9m3x#TCrmItItqwqN{kK_cS&EQO@g6oJvC#s;nzFxbG7r>rh zd)F9Qgq(8gNS4=o*LvjTXPmmMt0i+sAx(ED6(8l3E7l^UUZ%XKLF7nz{ydf(>F8FU zEg7@T>+Y+kv} zaQdl4#4UZ<717aA!RgLV0X3_nPMK@I9TxRCLnJYr^;UhW?DW zT44G$^w-wQT08k0}Zm03dg1J7B7}J>PV#D zzST{e!OGSMmss)J!x0s7{rB4#@;01_Ac50K?VD;!d>~h{HVeatbsW*Ni9<{Ek{=)kCUZeLhM=Inj?uW-J0uAa4IVShYmoSg+{5}kS9 zUW(3TlI`t$EK{QrQ?dQS+|*QBn$vC;*&>?vtp3~XuCDIxZbH0;MPvn@|0snL9$ z(a083-JNrcG}A}@Q9gul=~qN*1Y(Lqfe81vxAzQAsB%oR_}L~{;W#d8>Ub{!Tr$GE zY)oVkh4~!)up< zEY&H7yS(D%ZaNCmvaJQqqeb5f4On{wU!4)mg}c8N-U$4RBpgeBL}$;W1RD?=aiDCz z#;z-f$J5bq<`m=je6f3;`(m8`v9d`47y&GikFL`di@xS6J8D|=vY8_7%P>^~n5<;d z{422grPvNWA3Jfw2F15%df)x_T7B?IW2%jHEX6&nHHqal3B%8ZhP-j1MWYg}+NfHG zOV?-nLf1X7Jr*xx+9hnODTHq><_JF4lEs8$H=p#)+~|D-LG6Wwi1W_<3cL%hYG)y2 z^orkrezFq0C47Se-*kQed@4KYy1DuJX_JZp#y+Jt#DvGUCDv~ct~@FzfcpT>!4+_; zd$~jgYWLl)VSy?zGelWHrmn$0frt>_t*df8z~$zKf-)>zYxGIgs`CEEW|*?5h-KlR zAwQ2i&KNlenlBM8VnBLHDnk(v-R{>3;OUQ*2;afR@Nj=PEVKsph@M#Ci|LdHp%r6E zY&6hC>(;pR#AXP3>_IGTS(t4sjc#4*AD@PGb)C5ep1Gd2{`j}voBI-^M*DqVchnmZ zy(a)JBS`C=NhN3n+}xb&Ws#}AG7{*pf(ppy7(H%PJ7>Ek!V1 zt{3I!GZ)`%o*$wmD@C6-{Wg*z^B9OJ+%#avs&)8Y_%`Rpo7>;>cs1Z*e1!vEz`QnX zy%rsRA;+3;cDPBctw_NQE1{tf_y|Z!`iqKEKwa7KAFl2n+^=aqolkk^A&#R`yh}oM z&zUE%(JDfY9ciN_a)1x$uytv2i4c6!Pk}o7m$$wKW$jd;cO>}8^EHW+=Q9Lf(W}#i zuHm;ZMPqaRdNs`2ChmpTW(wfFJEFF&uUoXXq09n{=O&_MSF!!{)8!YWmHmR0nV~4! zIgSERk;p-R{;aNcM;Ur`+w(rhq4eJ_;5xt7Wa?g(WfU%7cFs#X=C0A=;;O80c9}7j z(TcA>by|%v3;?0XTZ)0XxnpBT(YAF0sz5|6uTL)K{{Sdzw1x%mW)MoVH$6JJ1e*p~ zfx3uWy@5a7;|s2 zIUI+W;CDw9zO5r8qqtueNZ-4dJ8VL7+|zP8PI$HVz;S&I$Q}y6+kMc4(0%>zq1)%d zzZC!^7UpBzfy&?0qjxY47vy!m!{6j*Sq4|0qJGOq!T6FHb3w0@YS{DV@ZAaMbDWSC zM<-|AB)c@FGqnqS2pUAIEvqYO4R`Q;z2vuo;q>;c%Baim{jMQJ+=78djpyr@LyKLP zDE)pd&v2~X;o)J6-KS~SEQTryf#B6%7n!a$vvpRc`y`~x_iICc|i>bv#Q z?l~5MgEQ>rTJC{j#NS_|r2FLlQa~S&vnOgw2}G4Pa2Ae+Kq6p%K+{)>cu2j;AUyBa zUO}?84JJmW-$gGy3SwI6j~{E^#~2Pux(&h#O+n-~Bbpo}PeS5!H(Z2I&lOG!Cf3=X zKg+_cttJ<3ao)(4GGKq+>URSTxOHj+Yqvl>%&_)?&5}(^8Duty`2HI?`u6poXrLC$ z*Yfdcl#KLW;FJ{zKe)8D_a4Gr}uaM~>a-*Y#N| zAQ{Y;^?GZ6uE7&MUaT7Nf77(p>qgXfQtv*a=P0viFsTg9R*DBAA!L^u|R@ML@sj-kH@H#}2< z?x*}<=EcRF#@nn6lzJJl{{BbU`X$$U)3x0)-Z$hTO=i78C=xj{FCP4cG@FaIVwbAt z`-}Ea4$ZOuS>ApO{vE&k$LG#7*@g9E`pp;SE(p(DxhbTyv?mteGp!FB;8(f0sNyL^ zb@%oTi_Gc5C~@9)=)vJ6wIW2{yW^cnn<)tRdugp=2F6hjB^vhL0_JafpaJr~W&J;T z4bFP2BeLjJIj(es+Rk+FF6mY8EO;Oo1o&N_eC%KJRVz`D9oZJSjV`oGEmS#1i^O~K z9|?&4LabfIws!1K%#wejJBXG!+2~I$(*k+1z?x)USv)CM07xEot+sn|o-{z^`Cn02 zeBW?}cW)Si{U-{aQC5TK(($vug>G+4n@V+S8nS9FyVur)VU`(W#p8Cc9q@_OTPvHvfS-Swr4 z8WyV;tN%noQ$__pBwvD=ez7%+x#@cewBcfw%$`JukDi{nM2RvGM5SKLIkcn*5I$ud zvp)9z1bEfUU03(U-iayq^U303c;to0ym)Sg&p$snaE5P0{6>*)L^lL5yj0oB|Mh-; zZdboMRSXu-Rboc_Z!;LXY^*NTKhU)75+0tn7cXN5c=$d`yl3Y^dy3tp~9oMrm zUCZvBW#O?xh8BH%P4Z{k3`QpG-Ss)=EdnZ5-BE}CJp>O=RrThq{mbt8OMoaf+I%wU z_Z$FX2)351M9m{7pk-h15WTS+r;F>^cW-oPjLDUJnF@s_fq}H%cS&Sy^_&GhrJquD zUw1F5@x3SoLb5Ww-WYpx%+{WslmqXB9j~*C>z*{ZuQt8Xm{Y6x)-6VC>9cqi6PzhP z88sY$ij9Segb=f^OF7aTg)#nnbZ|HBukzYthZ|IC}wW9bGyu+ez zY9C1jGw8-2?nNK|xn>I0+ml0Td>Q46qiIQ^cW2k7cPk!!=sub$jV`RE@0_lai4g4G zf4&sD)`RKEPj6r#2eltrS`oZjcC4xaVJwc+&iktB4y}~ah?_w-u0DrCc);X?j~{Tm zpQLNwe4eC>O$q1ucdBg=NWzT0^M>zyL*X#cD!?~8D17_wfF$eiaJ$QUHfZ10hq-gZj*11A{v|oy?vgny7`NOzC7Z@QaeudF z)!1BUzV-(lABc?FHX4?L4h$?J@uC_}oBGW}3@zAp)nvdU%}BsyKJPLte5vP73Y|Jz z2`|xTzBJHI8Qwa5{obCcIM1#qvUEBaGQ8zz$*owl&|-=v z_rR8jxcsOmz;kr0tuv}uJDTfyT^sd6k6_omd9b)YVxjt`)A#a|L%{rsg{Mx@*IsMu z5w!FL5qI0m02M0SOs!x+EXL>dwXy`mH^QOHvMK~0IdfLziTZzOgLmh1IFJI=F7sF8 zO4h)v3|0m$%)sZN=5x`%20)Q~4(T-JnX^4?hArI7(uh!YO5#XI5M~V@va>y`gd6?N zS^1kV&AMcXh-ZWQtg-ciZD*QwBeR^w^q%A2!LiA`pYVso;zk(b^XZdrzm6;a#s#|Z zPe{PSaDC#xrk-&n+UMxD*Z2&gpx&fJQC1AhXNxs+kaF-<9Xh8}9rfT^5a!{>jmk4QX*1`H!DhFxazfzLh!f zX~+}NM}OA*y+-IQvReHw&kpw5y2;{pAa9@Dp#Oz#OP$j9X7=-QdZi1=2bajmZ!?jY zhLr3NM#ATyti{W&1NNL^IK!h4BmwHRSQC1bqT|ykH0)LE?SVhMClPI_algMQYc*(e zKVJRsTwhweF$s4Z@TF#Y#d|Yi%x<4~npiom4SIG<_x_pUePQRvrnNjn@V#8;_rk7j zESpgRt7gmoYW4d(fbR*~Yw9olV!k=cCwYoYQdrq8-Yl$`NeS@ZC&Vj3Zk`GKE zvlvr{?(Mss*IEqqK?8Qn*T`wixbyc?_^MOg5jCBpX;&A+!lDQ6`qh$xsIR-}>TH$O zY&&{|4K!KJT6RZ29JzHRu`BopeQHa&^v&8ap-<578STL@nFRZxpy{6$zW_jKP|}Tq z=A4Mt;O<|Zmsc?AQwlxhz^R?Nl(1^9bfwr zJ@XJ2`MpchNyyFS+d;DE$^P$#Z$B&68px6ZjDWL1kAKKYr%W`-YmQj{9_B8tcs;ZuZ&Dlbnz0B#-j!FDRXz8;WE|D5D>+_KA{L6T8jqsfu zS&fRm8vBYwIs;C!R*;#Q00Za`fE+7C;uA!SfdKsXKcKlYYs7OCm?(o@$$(P|ob!Jl z{ZnZ*1hI^60-xF}xxuFi#hkPTSP!4~#Fi;Z7^(2{jo63NVarye`uxj1C(zY~n=ZHc z-2$oxJU+{vIGUy2kN1OVejs{rOI}Wbv{6U*T|dbNKRwvz$571b#}!Cpbnif z=R{Ed04|M+$*$Si=VYuzkht*NCId)G_0OLboYX7eiSu)95BdpO{yZy(-u?|$#x#D+ z)7`SUn*Dk7?D2v^Iy#V&Ppy#1P5-{vSY zCH8&!vepwv!OAdQW4AeQdyvLu(f4gMuP3JQ3>+9JW|J^KIto{T68R>vCudd!0_HK- zDpIu=xOSE(+t!MqBHjcL8L71v<4D9OI2dae2qqq{U}KSVP2>RqJ}_>gMN6obZ@Og= zc?oVebGEPFSh+pyI5^)Xh;$JD*`c?uR;hXAAkjn4rn`IrM6pPVB@r>d;2lk#%+^N6 z&&&Mk>f&BA#H+J$0N$RdnU(i#K*)I1HDOcIO9rJx5d;{4H9TN1GufK670DV$H{yK5 zT~!5{fRV*0C_vmB$G4pk&JN>}OoPP3%5{J`FG3P9M-%k69NF_D(xy$VyB(OPrvRI| zm<7EcT=99ar`>P{1f%|5vsM2aq1&qENaF(*{a` z0%Zb1TAH(ME~nLp`yYH>XZyd8oLwYO(b>b8Ij%%CJxvL%51dvB4Gu2Q(YLqnZ$b^1 zu8_H>eynK)&s+_Cbr4B=jyJf)wndTbz)z`RW1837^#@}a=go^I85Mzr_1;f`$_#iJ zed2H21tS-ENjSj;F$Z1K+LSH=7HTQaJmC-;kWZZe})8CDZ)Su($+eq>0 z^F>OkUphbC_y;^TH@0fRN9M8f-Q68)kP;74ySXfY=-5T%!E>R(p;f=N<~j5vJ3kx$AfMbQG_}7< zxabLsqFcUtz(fYhIxy4KG7~_s^2Qfj@dNcT~R}@5{SB5o@f6?^T8>n_gm&x%p9{$XRFC&vva14qLn+#$fJs&G;b+w%xIc#lLumjhPeWkO(wWcJ=%=2!;3v4=7?%c%e9*vf_TOGCfRoA06aqj7sM#)^s6BFs_ zPHTt=sYFp~st?C;nci$pRa^?-lk?jk(9`Xlqaw8-;Rv0L?9Bi`LtESL2J%ClfROR5 zq`0`g9*Uj)^C!p(M>YCS7vZbndF;#P-`b70jl|3xRrnNjicnuqPuuInOhN*D^)~VV zi9Od7{1o;^A%*i}-#12L13v2sDPn!!*KP9b!nb=-?0}Y+^CI2;dM#w92{@lF2~9PH z3s*``;$roJojDNCmY%MXXFg!0#_ZUG=90sZ@~iU2n1aIOTj86BThImBA^!L!*{)s6T!>^O2w$!JvJ8U+ED5{PYSJBF3M=*thM<2ik{WQfatbgKoUZ z%LSajcDoYp<_1?+BDUY0gBU6Q`)Ja9DJi(jFj=`+c}exkl_i2NUp3(eeSaxB5KAS3 zosq+!taG%rby7#W-p|L&i^H;-Lg=qf2b(69*!Ug?E!eIiCiaY?lG9W$JFC@4DG<0* zLqcSexNGA`8{3a9hhtU76Y}z}_12GdLKX<;0iF(f8GGq*oPpEAe$|4B%rN{FkjU59 z5WuMTo!?!fVJj0TFcZ+yHlMeEpu1|)7zi5n-NWs}J%s7Q?J_gV?>%4ceOK>hY&1wG z(AIZ0WIIi873PN&0$W)bFFid!>2e3=DOi4J)(IpYZe%nn%Yx1gC3T45ysV+US%TIB=xjI5jZb%7c(Wzjm^k}pGZc~JyFx}U{-UBIJm z5gE_k!z~hm?Mzr>{wu%BQ;QL6_8-3dMdjU5alt71We%dgpKYic7qHgcD|c3gBnaGpSFY~$n z1J7mn%>L`^>$l<9N<839VZ*j_l-~CDwyetj~jgf_cq;;si{h$`amx9JaEZ> zuF~T2z~_K}X$K1*33@|2 zJvdsKEJ47-3z2B0Y}=3s>Zdce%o4}!B%Fway{hPrLWvj-9n55(bx>8!67lxyF;?Zv zdUkm=PxYE5dm1lM)>4PcC=}--nRzHNCRin~A}g~M7nEm@ioU{YeN-$61+V#fXb<=>YvqNg8} z5)u>BfQQ#$aUccUm{hl`qki_*v$54~E(>f5A)~fHge&|5U?w|v{{}bi0AH0CoBA~Y zhLuh!2+aU_G=rNy2jVWk+_?Sg$JLdo#t)7?ZafTVL3C&krlGbZl*2icxRY?vF(=CP zg~kZ3maLzM8L4TLL8~FtK7%9QG}a+b7P}_yy?^nyT*&;vMG{-1NP~f1t>e{&9BnJd z+WqqBY7*vpTHNLMgu2?=dG0DkXBg;lfdnLqXu&;AGFO>~E|b5bWHQ%UetSD2Vtd<` zj#=c2MIVbuFD!@QY(+)|!eEIRbDG%O!DemuO#>@oy@`cBa6EIc=Exu>}LXczV<}21+R9sdX++XVvzsWi>!ThpovYD56 z_kJ~e(+1~^RdIv66Wm_K&E3M6M6|v4-#r8ZYf0~UQ*zkusnlXiV|{jG6ukYF zw6n9c9{B$AXHZbJO~74wvDH#bC}z?7cd{dvh@WDUoHQfo)~DV2w>thfhD$kx63g7L znh=nOR=FHK)bEC%g z&7nz!DY2h0l1s+(8g98R|Nb=Wxey;aJ39^)e|_~E)~7&l5)||{9GFy!)mczMgn{DF zU!z-Rz#O%s0r62!EHkw3q^|@j;IVTE=NrKAkt71(^i=P=Cy1YwsM zF13_sJ@j|3N%K{;H=w&^im>iUzjHO7sUyS4c<>G#|wzj6;@szHhM@`M_ zzTa&{e>ub`2mR0`8d;N}y#JexxHGGm$fq?7Vj>><+yu|iWaf0eC?12AZdj;~U#|9^ z9wvFf@8x?Q5N`(Zr#^g;&XYihPZ#pPJJ|q-dmM_I58x|3L6-I8wdEVnWKKtC)|jvc z3JbJ&&}Bv-2NtR{8@~7z8e9_gluW?&-$xfu!3j=}camUj%^uPcaeRU>Sl>i4Lz`4fn)i7!?0aH={#AZh(H(|{LeH74~b4mAp!wYrmq5f%__ld{3fT;ynJ>x zFd*Uw0Uw^*a)c^UPU&!*UeKolIh81aq0cOrAu@M+@$c#)KR4VStDx|osR#RoXXjIx zp{SjX+PKG(A6#pyTa(SO{p^(^(`@BEKY$UaAQUpuJ}x~mr=ICUK|!EMFard;ehb<> zb%=v3C$A0Tc2BPG%Sd1~g~qRB(=`cajX3F7>#eL|JSSpf3Dh&*8>i<|E7{i~PHr@W z;+|?Z%x`Fk9bZfDj7#yCjyelXL=}!Y+Z%d+NbKhPpQ_F(EUNeY`kO{tq(e|rT0lS= zzLL@s(jiDG4bmVfEg~%~EhRAwDJ{~Blt>FhhX@10!2689|H-?LJo37j*|Ya^-)pVU za%25+xB`~;sLmS8y!Y=jAKLVei0AQ--D+|;*K7Xmz5eEraHcBmGODPT9}I5Vx)28k z##jL%N|*eQ=C9ypfF?70*h3CZ*2czja}b+yJiUkqyS%cpo}M~Ut6Xb)VYdsxY=h%k zzh?IAiW-|T38Pq`ulEVaF!{{&#y}xgaMvZ4khY`#H#gZ-EW9S(aez~{D6@7>NiN=r zvAFobJj{Mn)A{z|EDUjXj8P2J|8P6^cRT$Fx=4hgfQ zcg6gk8t82`^xhQ+DLAnvj|i@wMU*e@^54Q9x<>?9Thd9cs$Z1;v&wkh@{=teT?!B7yJ21a9i%hNIRAO4sGG zjX!@dvmWRQu>wy*HTac372Z&ZvO=|rG&M=#mIzE?qw;Q)`M87uhjD|)G-iy~^7ye01=V(+@6K@Uf85)IJ#8~o*DM?KycT!TYK(v;sI735K zp48LN&+okHr8>vA2F~=y#U60^e0?WTo~hsKKRXovU@0Ru{d{-t18pu%eQ3yC;k^24 z(TXBy(i(IC3ELhnpWT}Fm8M!h!TuQt0uM_*re|ma?)Trmeaj8j*4b9M{IzxshttG? zARd?&Swg^vhs;Bi0$sZwkSf8m8*peaj>srQ@uf>x=R)vB54run3uwaS!2k#@*bMIL zpJw2E+#v4Ze(OQo@w92#oE{Gzw#$EsT`c(j zMQ^N=GQH_{R#ulUG$h6iI0gAS<^z*d+-13cNL`*57c7LCF$PW;K zv7rNOz3;-8u|qNaPf1=Zd^A8jRi5}F#u&P=IO|Yv?g=u8AZa-FV8-pjq}?L+ohl9g zU!XY2{#_2&DJvgzc<~Z1Lj>7zvEOOQDt}LE{Ws_lKK)Vt1huQ6+oY11-!axCCb}=0 zE33o)ML6>*UvjPIEy~ZIN$^9%2|xyd!^fEKIUUul(6Cav{`KuoFE+{*|9K69ujt!f znKqgE%-N-z`^>fZu>?0eO$8iGO)tJ$il+y)XXhISod>gZ0jSS*Y|3UHgJrtL#$^Xh zNRbx>z09-hXUAin#W@_{5lDT;XO)*^P51oIW?C9%FWVPqY7*Z+ZTQ-1{TtBkjz^rU z=l*92eLkbIJ}1zeA95WZkA(yNs*1`It@hvQZTfdH>?JidtS{H@_;+2x_b~!EqjR}u zy5|K*1jAZO@LBKI1+ln%r;UH|oT7*NQQPh6*obsb7;;`~KT55Dy$JsaO>;*!5G zOBtG(J(X}Vd-4Q;)t(t={zEVp7lUZ*-0va5)Ku z?6TcV#MZHrlg`m^GIE*$yoAzM2UlxJK^MXzb-d2&-^3T6)?t5f@@_R3Xj*|UhXtec z^mK5Vtgx=H_-R^Y^ps0LkvH;&OWXmh5fna;Qx^CoC)gs3W0ufQht@j@sbxBDry9YL%;$D7MfstGZm_iSu-R_3ienN)X!IuB-ukakwWE zbBs52nS*=IH!(}eUb+ou#0dgVXJyStJy003)RNjzws$8+f^d%zALq3^WM4o{=oVh2 z^X5@<1@1Z8!u4bKi9~X=o*H81jxcbW+KPVePPm3OJ`iha!Zr&!X`HbLeki}xfxaNW zJuGGg!~%%`qMuft{7WSzz{g5N#eOS^!n;lD=mtHltU^MQWyiYtf`El&%LlgBW_K#s zj5F*a5F#bDv+KO_|GPvGeutl5hFNLNBJjQx%K+i`@A^hYhS>kBsI42D0LZEw$(IcB zPELAyCJZ6w%ZXh^+yf%>-r zO=95R_=g}DA9a&3_zFx$n%O1V;tY%ol8~hi zybrjv$avf6syROD$M!jNCSPQ%HGXJD4hhjbHlXIQSU&RN(+dsHYxbH+y|@;1pyi*) zr5t}6V<~1yJkTcg=4n|u@D`#MV{>387$Vx- zufDrsUNpmB6TY z6I|OTfTOlK-UXh4SHI(wiwuX>A%+ByVKOqH2ZR?jHDcORpVqLy!|v5>3gMqXpvQ*( z!8U*-0F})ZRQo1MxpblvrA`k*4!cxt`)w8!-fdWXdj}a1pn-eFgx3xMTMuTw0@m!M zkRdoDjlQEjioe=73EKU}r96bF?oQ|P2u$E6 z*Sx`{by-bFOKXu7waBmr7!0YNIQM2Vvgny1fFkX+DF8~R5l;`EQt_n2FOSnsi==OR ze(gB;B#ij^`kWjIEaa?IcasP#X%&pRE_%ispFP7^#zXFWUy(?zRG zcf|c?(0=pUVu1aaVY$B)B2~EvyrnNtMfYBVr8vgY4Eni?A6xpZPZ=G+k?ZNS0)bn_ zI-4CAxBVSPKb#+9)=4QTOM%CM&ZRL>UJ>|Z>Az3!L@l;>0~6jJ?1jgxNbCn*&EV#( zYm;~=4I3NWQzpI1GHcfl=+-FW$WJ?Ttse-;G#)=z!+JZYgA)i^2#cNl&7-X? z=(e`qx(W-{c!Q#@<&t~bOVL9i7N2JA0OBlD@r)Yoh#_ji2-EjJ<4pqTs|vedvZgf> zY&a|g$gk5oJ$Mn<{}rJ<5gl~@8Kh2dCxe1pW8)Mq970?ZV2GR;qb0tVh_~DVe!8s- zHd|*{F*5hhdPHSFE7wDMRxW}d!i`^NXjNatBtEI4xriaJf9^!EZWw*`$PQ`E{fNJB zv4F8K%x^*oOifI4vTSLJUAI|KcV1D|p3*d#@F(Xl*M0wfxVhOPSpzG-0q+KMU0iI@ zKsO*iNJT1!&bzcCbB*h@LIOmCFTu->YcaqTlc~^3>^Yiz49+LpmG#eMj)&Kh08^0H zDDC|RaQ*^{4tSXUJ=uW;J_I0(C`o5PUpagj3#3l?LIH)qvyzE?#bc7SqYRB*T3Mo? zEp7m1F=Sjs*aEe}M@rtQ!lFhGYk5dXI+fP5~N16U&NKmB`2yL#QjMC1y41Ucjy-CDIv({L2g7WV8 z@Xxb;Dlw3hp4!-u|J!?T5PH`C3mL7rH#0P7T?)VPz^qz6wB&r}#O5$sL6cOywySTg zZjL)vQ$p9kPAu*b1ZtQ^IB&J=OZj+_{1(Z4Ar`fD)^<2my;>c8!29Z9utgog8{n|3 zj;usrE!)$|!6dT4x~`(e_2tW#c(o>)B_KotjBfzo7LKm1s&szA$D^poyw%fGhz)N! z@*eOGKf3raK0aw9T!3n*PwKoviwKW?JS{`}?nbjH_jG`B=FtE!Gr_9M9Ih@^ZfDAc z9Ib+?k=?rU<2-*N{;@FtxUi{{(A$T5;&j3P_Kec%=tQa7)*DyR3>~g;v%OpDv>!`k zHU)^OV@6jHbl^2&Ai15i#6p6tS`6S8*tp?fpaxFbk&ztZW;3@Sz1^(Gj}be!DF2ZW zi>%Fmq^3?yfkT2*qiV$8rni+Q#gjX1H^}gbZAF`_J@-ZN#cd08gl1Eg5JZs!^{)h_ z_`xPrW`$wTvDe0Sz$T**n{_C<-H)?t9$l6ktuANg@vt zaXKtQ{(|>2GmVYmaLBc-&ZaMxI)(Ed$PSq8dthWWDk5C4VJ_EWmVU!Gf=K71fmudI zMw3xf0o`Jl6#7u=Nc93*oz0;On~eVKIlVdR>Dn zM{(M$6gFIjulqK=B+Z-S@>*G{Ay58aySu}~!y40#iJ4NUE&}A}LL;xB>ul}iWz4Oy z_dAH`>FMX9TA9CpIAhBGPS=t!S|YGxpq2o(@YPbg^Gw7IFb}M!+K-<50JfFv5C9QY zR#q{KmX(!#`c(TiCut|vCLOSKgM*u&5Y5o{304Eta=HEs7CoCn{R+gLxHr~sBdKH) z@PO6Kzvm(}yz5j!?NQkc+*6qtBj0n`cu#PN2+yK!B4DmQK2AKQnm1ajM>fL3+-OhF zj?yh<9Vhb@?0RL&E)TGP@Oc)H;Xok&oOY90oJFVS|O2u+)RB5_mRz5DPX z8B6DXLOwwIjNQDFPgA|Tda{*uAOOP50_h=t?`8e{gSf>7h)i*)y&}itO|LYyUB@?2 z-a0$ij@J>%5XwI}E^91o{q%;X`SYLn;WgHGdhu^A9;a*`+{_J^R{e>hMsav9A)d-; znY`3{r_Lea+`{@V6?wS4SlRvElmbh3h#qu4&OR0#88)k3j^WDnWv9jZ2tnk8YL683 z!RG;J_J!Tu@8AD>Hnh@m;1Y&R)Y%Oa2{QPET_m3K33uSH1x7xtj(Bn-cf%OgLWP+qsQLGyz_y?5$)_ms7!I!FT@7aU#{>Pg*jqHzEk5J4?QwOk) zCwh~UlE5S+eHTW~%Rs_Lg~2mPo9um5gJknem~-WE*ped@S7ONN@HxI6`s0PE_UPe; zH8sgyLA7&XT@^e~-P4-RWo#&0lbxtWkBzdxy$5KkI1M-Lon zj}@1uBPNN98+iGPbz&8CZSNv#>+G~e1v1_HGhb%9w{Qj6o*MDFkT-G7e{Sw0c=xcW zVE*&4uY!npJmWUhNL9eEsF2V90g;xw7);*L=}Ja(Q%5HsnfmsYmbUi1=XnS45TniB ztA}>T0wjbkq&D5$-Cb!SB= z>uz_Ksl->x8wb6({yOQ^wNp{-U+}sEae_KRSK*irPA`ex{HhMnrEy9s*wULuTP&Qa z=!haW5+1enm8JQwn6$MOOPD_K*dL3IlSzR0zopg&D(W_!N-RRfqD*w_>XH7p=QyhD z<36f-$o-`k_?vrp85xk91Vk8yjE;ibHVQy3j%6nqIPRuc9IS@S1mc_p?hu=29C^b$ zOD$?9pkE%K{1XS_p;pi473jBP*6AAiEd2doX2-jAXGfQ|cupadqzD}NZSX|RgnHKQ z@p{6c{Uw&$r{}#4;~;L9J!0bneW`y)evD^tO%vPrHEHYZ(*@Oqx6}8I&U&=Z;+Vf4 zktQNCK3tEn^oF(Sb;qsv@x6VcPh`LfN*j;EYTeo7Isc>3;*!6s0M0IurYWC)J9pb0 z-@uKqGfB0q5pVBRAIOBiVmu;^Z%C-92tpt@pFFuG&sl^pFpA5IOFy?2=DXOgga+A_ z9*7kZ+0eu_-wvNaUMInNZbKSE+=QB%kpXDQ90VenFjNuKMoMZ0BPT6*SESCN0GV|r zW?4)7hN_EEK9bH=1*F*((5vwieID4}jz&XU4TjE**mNXiy}v*%MjO@?+x?iL%!Vnd z#O^cljsvlh+8BXm(I88v`1Qf^R2v1 zdINX90~u}2fPh0=?@pavw(8gQdDz%NMgQ{N;l&XpajQk%$f(cj<3P^iGQGI-9WGAa zMHkx0G*%Dz98RTK?g)PP>JAUJ5;bkywV=i=cIx=gIx{S?*O@6n4YKr4$~o&FK2(FvTnTLfooltzjm7h8=M0ca-?ij z*i+PsZbW1C4?Nu8o`NG?;l|F@E@qY4NL_xrM2t@>)Ju{fCl~+AYUV*$Kl)S8N^)}f zy-*!O<8ROFhwK^)IhiZ#tcDc@wgTB{|NKy-T*kJRCFTi{5omaAKJF_(mj21i(IIQi z#1zY|=RxwEPbv3PQPS}rL{`H5qSDp@gi8O7si+Npr;2q7K0DqBXZO2WRSFH{r6U%N zvYy;hQF@Ft?S4wQ?h$H#=S`)#uU|)lehq<6IqvH<$g3p)g^d;Z+XEJ`WB8t2>f)j( zvDp(9jtsr;)2h7YReg2gQ@#~K{J`<;Q*%}9Hm#VxcY|D+#5Q!G0iJlsN`CJ$Hx&{T zk83=n$?kvG*;!oD$#-&s4EmWngWBCzOxp`MFfcUK2R~;7qK;19(^FLP;SCBx-}amw zuz*r{%PueG+?X{2$YCQJK4UNCW)a~(aDdzXAyL1gf*Di#(4Z}}zHZ3t#HomoWZw2~ zV2IG*c~ReyjO&|&3FltDMc$5jQ{%B9B8^k{rxeW;NxR-EQp^UBwK$t@9h~FfZDC8i&L3{rf|w6WpMvu8TY29 za%lr|b!Tra#Ga=!hFj-ag@}=B0Nv-`DqwDS> zKmGye3IozzuoSEpY4WV#a&3JvqyYIqt_pfqU{IN=US;?~q-=t9Yy_FdB6l^&Wo}+v zY-i_lFj6?{%AhK%$WEA~?sV zqzkMWHzPDSTPRywTo$&sDVOrD18U>wU&VC`IOftu=sWEZ3qCJ4UysZZJNftvh0bxU zz^ivJ8Zt1%ry$bQ@?Z*8EHJEp!G4!{urU%m(UrY1$$XrT;8o2TUYN_p`6%wDX#{E? zFFZUP5=dXz_rl&?2sm7xceQLaG~V*Sv^@a79Psu&Jf1QdGOrNqWW4p^#60eZ9Ta!f9~s{n)4se2l)tUrrAF~0*`*bsiWA#XZPL=OTH2I&|W=<1p?6E-hk zZZXS{pgj|eF7;o}7kNv|SEyt*h^lxh*7IY=#6(@)1xo2L4S~V~QPBq@)qT4si}1B$ zEQuU472`QGqhr1Mbg^+Gzyk_alQg&DPkY5Flyt`mYj}EC$$Rx;l-ZI82hCflh@!0L z;%KRfQe&;tCbjMDR5_DXtgG&eq-cx|m+9l+pwY5RyfyFtT@i}7pvF5>qrF|+)xVwU zfsl~! zNlY=1x>t_e%|7MY-HSy&$TAxR@dGi2XLXZ$l~XTh2wb9)htw!B$rejrg}}QkES(`N z>yDB+0_k)l9E4^0eQCgz3~0Flr)}pO80Na(dowKra;y~b)muXsy!s&a7_+b1f!0p| z^C~<%GPq;Hy{e2=?H&7|Jfx|l+9jc_E)f0qCPzvbE1{26%cz7vidrecvGQa%^Aud! z;@4+uyK}xw%YC%3z{=#m!0V9fg_bFV$jmz>B%amr1_rqLX!Ue&Z=R9S&!P&W{^-~C zSwUr03$3aAY%{BTM(VMw+ft{8l&rUre!16Y z&obj#3GXr(@PMkk?QB;vX34;_uQ%Q0BqW;)tOpV|HsCw;#tQPf_1qFf5I@-GE0)JU zqEjx{=N`>VkMM|ebpsSzCyup7;=QY`pl%52UCY9(8uZ1oH9X8jiI#m_XN3YrX^d8# zTo&t!3KYx^-10Z=!rl%NDsqa@4L?tDT$0^VrTvP&$BZ2_SEkQ5^m!mjuptLy1@Q_7 zE?^TAJr9%sL$LJi9MF=*15PA~+2#oPQUbUc=Hb~aSkB%?xr6h5BSp)(v9IsBNN&W$ zmRo}3u5kZC##7K=HH7tH6a#X3Hb5B0e#1s40;R@>caKzUwfrj}plU?f;oZrk!i7oQ zMoJ`J9QI(C>ICFu%&QWKYkp9gopEDU;fGPoQniE={=u4xs64g3_wT>h?2T3#nl-<~ z`9|K`d0;v7ca``ZJ0bi-p_gPmyt%n983d#Y_3itQ; Ty7y@T0+*VS)}v}gtFZqEMhFb` literal 0 HcmV?d00001 diff --git a/resources/profiles/SeeMeCNC/SeeMeCNC BOSSdelta 500 0510_cover.png b/resources/profiles/SeeMeCNC/SeeMeCNC BOSSdelta 500 0510_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..2e40b46d3692b5bf1da643c8856132709e8937aa GIT binary patch literal 34369 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

UclMY({m(HMa5ibf_TvA; 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͙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 SFZ_$?hUjS<-Kx_>J^mknb!RsK literal 0 HcmV?d00001 diff --git a/resources/profiles/SeeMeCNC/SeeMeCNC_Buildplate_Model.STL b/resources/profiles/SeeMeCNC/SeeMeCNC_Buildplate_Model.STL new file mode 100644 index 0000000000000000000000000000000000000000..7a1db1f9fcf53158672e57e7b52f890d5b36fd61 GIT binary patch literal 60084 zcmbV#3$$!Sb?rv+1B9m{AV2jaD1wTB7coP*d!Kub@yAm{1vH5uf>8`VF@~r>j!~jS z6BPX75A#HcL^Sd-54gSic8j7YBm#yY8VCxgL<7&DqC)0ed+w@P-R#57yJIA-!&zv0-Ujyz&v&7ON6ee|KPdgGBt9dX=IhyBT`4?X(WBVK*f!vDv=FKk*> zA9&zn+wISKZd>8sZ;rZT^6}g6npD-o_!l3(Z1R)u`~-H@W_w{=RquKB6WZgxzAg~% z$#&K5eauypyAQo3(8CCi$~HMps`qHm``9yr!#&xq+UNb?y2)Rk_+4=fAv`ME)h?X-qsbdj`?@%W z5FV9na=di$_u6$&**Q4elkKYg(H(bAp8q#vaSS0mD%<3E~oPgh7cZ=ZE{?@&x_mV?XXpFxF_3Hd%zBxOrP-A=Za$p;ZfNp$8C>)S^I-0 zZ5ABv$#&IV|GrJ9pZLI8;uu1BRJO_Sjq_j8ZjEnEg@5kJHaM<+$n=*7zh4}K2#d-H za;*E_tJfV114)*>OpHR2dTcvQB@ zaqWBmwEf2CPYn+DWV>n)`|WL~58HDGaSS0mD%<4vvwh#xe)XCogTp=9uG(8Z`lxAp zYbA~$ghyqY9DAMcmiDY0o8WLywyXBV*K9Z4>WV8jRPj9;LU>fR$#KWxN$utz+$K2O zlkKYA>8smMFF*1l;uu1BRJO_Sn-87b-nG@Y*Q1Y>d$L`%-~N*wrbnEzzc_{v9+ho! zeD35wZ@>JZmEdqswyXB3-`!#Q&_SqHu{IC4~pc=9Js zo1FHCn~B2^7~tHNM`fEW?em$NM~A%N)xqJOY%h$j`_0=Xf7Se!I1EwcC_Kq5D%<4v zV)IX)p}I6$#LVGFCBgBLB|A#d$PSS{)0!q zZ1VEwJVG3XsB%=*dQ`T_@yx@{8J#_OeQ>xZ+Y95}KiEueKk|{{FhrH3s@9{jO^$7T zea7g+la#uRgS`{*rKvcj+dQt@@VV-Iw3gRlWnX~&e(GD z(Ob6_hasvQg%y%TWt$uq-SX1W&98ZLaJVPi3*(pk{%sp}UALV$3{mB%s`aRBljDTT zo;cd~bteXgd$PSS{_x{2-0+fvwikyXsvK3d9+ho!>~U~4+V@u{1&4dGy)b_J$KJZ( zle_F74ntHqs%kwd+vGU;&~w*6VTV5t4)`AXt95y-@H*}jf!CCxvP}+*?pnPceC3LY(M<@9`nvp{4 zPf2PQpPqI3vpax$;?L!EU$~HOhG^q9b;7qNy;%SiD#ZzJ_Kcj{a9+ho!;Hg&YImjoD+KQ)IY8Owt zrTnZNLU>fR$$_VHt>-zPoN6nc&Z%8IwU_dmVF=+-*(L{88MW3WTmh)9SY@PkvHDob zYo8&6M`fEFSS{6BUvVX)wyHMUv4&g9Yq%i<)>;TYm&;vVlpI3{kIFVVkmYPFFRHd8-fR$$>0qV|h`v75UcGF7lVlU0#$NLkN$`HaU>xY%DLTwj$q} z+C~0yxyy@^V+i3<*(L|FoQ>s0)mG$NQ@hAtE_ZoRatt9nD%<2hmb0|?4jLghyqY9Gc;R!#&wv z7;6?4#}LA!vP}-n)WPANY%h%UG!VxS!lSZH4n1*#!#&wv80)Dfjv<6cWt$v&at4Qc zvb`|Y(^(ut2#?A(IkW-@4)80~8HDvlw9M`fEFS|JCAd$PSS)+$^a zLkN$`HaWD?4-WTadtt2IggAx}9+ho!XvY#9?#cGTSi2%|3?V!!+vL#BD>&SfZRiHw zeo!1k2#?A(IkbZe4)0&xm6Pp^Q#MWt$wz z6a|NSvYql*%iXhf2%*eWL}i;C%6J8bd$P^7VdTriF@z|idIUL?xeJaQMNc2KFjn4A z9770?$~Ie41~NF@lkLz_nZFdr5JDNxh{`rOlt~Q^_hdV?ROVsDF@#X&Hlngk4rPRc z!#&v!EtUCXaSS1pfsUwblS7&9;BZg2LrY~|TpU9PWzr)m+vHG&J~-Ty?a)%0-xtRa zLW)2{Wt$vQ8iK<;*$yq0I)ylf5K=ZGD%<3cViFwg$#!U|)LXm zPqsr#rEVmSA%v8sh{`rOq+kVyd$Ju`D)ldM3?ZbLMO3!QAtf$2+>`C34~k<5A>}Wk zvP}*tioxNYY$u&l9771HmJyY0a&-Szg2O%8PI|34RzXnJ?Kx!Ybx;%TIg$q)34zzN z0a|K)9ruawsBG)~ptjwQmD);5b+n83W-_&fA1K(PnnFtQ|WILV95XTS#GsC2x zak5Pg%sxE(5ghKxb~;}ojv)kQxJf^AW}6(CMR|rLINX!%bWTPbLkP^&ll}>iZF1mg zz_U2P;ht=#^FHDjLg0xr>7QiTCI_BsJW~`L?#XsKwLCPH$di8Moo#aHL}PHcC)=?%V3kK+xAWBG90Du-6qRjqU^l^vkwCa7+o^g)9771~ zSSCVB90*hcJwJK+vGsj zfHfw;;ht3G3j%bib}OB(JpeNtT7SC z5W=IfO%7yhS!2@YUe#8rU5R#)>t&6JIED}&m2Gk$>&zOH;BZg2BNxsZ6LAb7kl9XA z*(L|F=d3Xa4)5yub$8Tu5JZE`>bV2w#|xF_48O|Zs9976~w4Jj(y6F8WU+nLkK88DJt9KfV#vQli+Yq zwnOt`jY-y{?h^q8D@A3S98k$vV-mWWd$Jwc9cxUou6CaYC~+w&+vHHiNUz-~D%Gw; zyU+?*W3rg^K~|;AAv`METR|~L^SuAse)&Pyzi~3${|Mvp1vcvLWM}2nJ-q-(ciKr|}=*2!V{&$7F`r>0BwY=X+ zQ3q8$=AiACU$7AMN=2amQF1uqvCrLp`Sm|MGhW{?!lQgd5@LnD`sJ;USUzZNRI*jK z-1^An$9>|dlN50uM%gPzyyom}mM{6j_H*bG;ZZ&!i7I-v*WsHlA9Y03B36I>xGk6O z`NOx&wVMzyN)AVy^67^yFRmOuhb|Ewi4` ze*Md(C!KZS9J)k!l#fW_h+f?`xpL{^PyQg60WT3A zn zv*pq~uVXb(RXuC3U6wYvYU{andjS8pu&6-`ya zUhHj;a=YYk#Pv_#aox}M>RK8`c$AMwAXYluN`qIsp&uVaZRp3%+jYC_l_S8nVWWDL zqI^VxW2IwSY4FLI^q(b+=%oLQc~9Ifd*ukcHybwU9ZXR^BEhlJF|9QC7ESu^9X@@N z{`=@Xal7o5Bk(z%Y}BVcMfr#X$4bWpj+HYf{TzjF>Lkrw-W9XUUO58a`N>Aj3@OS- zBq&xoqLl`-^Q528F{@4bdEPowm}RdVf%$Q=QL|`{vJnZAm5yqq!INy#Kl|_mnDo!Y zqAT`C*(*ojSu)wECr*m;5ebTwjtDE{-R_+9>jXS4C;j@tI#QTruN;Br?qs8$&MC@A zBuG{|s+9&Sq-npV!pdUWueFM<*dJxD9Dy~;WTRFxDauDAC{{Y6l?JQHX}|u&Ds0-X zORXb?S@y~iSkFy2YSovbd_;m|rK4JDu=1YvYjvzxr~Mkf=!*SO_R0}h`%X7%g`A>% zM1o?aBU)*&OPTij8m#W8{eH(fQkZ409D#kpbfb0?DauDANLD(kl?HpVX}<@=PH5Wi z4U4YWA7!r`fj!l9qjp{?%16W~ux3!Z*e}N}l|5Yah*`Vrm0nYaSebt^6I~*(OHHc^ z9}(w?T`J$TCH`0SJ$mR-ZkHU6&{)l(ON2-Hh?E@qyhg9|K8Nj5ZkHU6(C2CnT_QY6 zpUV3{=(`;reJAFkhI{1*eFx{zWv@KSN2KJ?JQ!_h{+MgGMEGBh(0nzAE_>xsJ|f=g zN~32+w57RruH6#he>p;P`y9ILl}GuAc&jUop0ClCo=bD>mI(jL5qb{Jq03%*l#htF zy3%MZ5^d=jKG$xE@V^|PHNzab?3G9Php;XoH=yaE06LK@m6D(%AIMnrTy7lyCuT^a)kDSbLg^H z9_1tAt;Q~uyZC4eQQY0nwOb^y*2>;6wSo>1PnM0So@+hpY(};Mhu}h`; z7CRGZP;>2;2>;6wQnTjJWv@I6dyzCE-fHYpsZ=iVzhWmu1#@oiR3iK@M@adbLzlhs zDD2zPh@@6mu!C%KyNlzjZ7z;eROL1i?kNyZNju+a2x_T)l+feKIabJ#--E?*?z^|^ z_H3^lkw;-Qgh%;^bUnrYk6z`^>*6@S&)%-vv%PXe{=}??@F*XVvRC=Ly*SR_32)c! z*-KD~9Fg~ft06qfN2Kgk-jgqm5k)N(Pfu^x?b%*ABJYYy;xgKT;*VpI#MFDYrPwk@KyKV>|(NZBjB2NSlXzDEyp)M{hp2#vxFdSI*~%10#g5uwj(^h)n@*g0yoUO7Uam>KkJ zuRO{}B=ZrW?{>7M@5D^ItM$qe`gYBrXM5#QJ|bnWG!I5wnm=aRU9DG+&`dOgp6!)K z`G}Og(laC4(p)>!?rObqgl6p-^lYy@%15N^m7cHBmYz#9?XK1}@+cpXvR7KSO=FfxXUDuJZqIUP%@}B{oVu2bq@1rj z%16Wi_zr4~8*OQAIMeQGy>f(BnKS6w*Wppch*-B`m#Wj4u}jq{P49`@vm9D^M^CgO zzn@-tl#hsY3S*_cQ?#W$$4tAc^~w?2z09CzUx!C&hjbqZ?K8up{n<>^YQ1uVc6u}D z*V188H#A=8lDpg$w zu@Zg5%z!7Es$F82swx<7*X`L};hB*Tc$TQfWHp3G`G}Nbg{QtMgJRFAiXm^;?b%-8 z`I-=T?y4SVHH1g`h?Kp;3Q1K|u}f8TmAC8mY_G5uNeHY_RJ*hq!lQgd%3fhLsfx4M zrK%Fm+jV=kS6H_t1lDt^^I8qzQ9dGNudwn~bzbaJRki2sx;@(~tZ@?pYhP-q_p_4m zC?AosSJ<1D8`vlbwu7>a^ACan=wq!4G^dSkuKO;&!lQ6YMY{37sxCP7!Od;YzH{_I zAl%~!pSy6|0uZ}D=g!e(=#?Wp3b$0G8~<@O`{XT}b>FyU^c5i7-+6K)A;dKBHFEQ~qx2=DR?gGlTFb+)|Nl{I9Avd}q66^9N2we+Ptn98u12 z#{%&XApU*^;ZeAyBHj3p&(-BSHP6}n!a%sk5k8|<)z^V|3=rQ3ha)@+w^XDX|Ep?~ z;})8$+s||e^EkridEC|m#7#h4MGixFly26=yt^>2s;6JIb93+$&kTfn98u1@S6;bu zvpo>c#HYj&9;F+C#qqN5@6sHz|GNX>9!K~*kK18@I2(v>;B`2{qi{<_y79lN4*UFW z%_V<);^+z>+~Wv;`c%~mfH)V3f15#g6mF?VH~!;3vfZEDeC8{Mj=l$kdmK?d4W13e zp+LM4W90~s!Yvi)#{a5%(IHQ1p0|E!^dcbK;|PEHRMpRc_%INkMXwy;QMjcd-T04t zKi2KpT=IvHADs(?dmQ1<#Hu&1{DbR%350tb;ZN$S`qdVDH|GGc8Qwuhc$99K$J3eL!PlO*ck}!I{%m_MXwy;QMjeTZv4OT-o2Y&o^|}CM7YNhe(DMD2M{m*)bW=t;dMBo zjM{NI);#e#h&cYNBC6OA ze(sp_>gMdnv_A*J_s)*MeRTGlVYdKr1Q1`FL3ot!qwyWQ=d60V>+b}@J&wS=dg(XH zs%ldpJ^=*R436+9-+ANJ|K1t(;}3s)jIMhef%^f|Z>?3;xj?)Zh&O`65gt|U=->PN zQ|fD8vTOS%K)A;dxaTnaW*ly<1L9~Pel&ydD9?o8KAByPski*a69eHMN8rB3^xJos zOMv)YAT9=nBRtA;Csp;kFFc^$=0&@=mjK}&N8sMc^c#LvRlneX`t<#GZ=a7(yCXcR z%*nie+r8@#ynK&#KOo%W2;85Uev1(A;G_1gZv}$i4@Y>E=d!Bm)u(M+@3GBZfpCu_ za1UtuO+`GTfH(+*K>QOp9N|%O zdC_Xy&7T$s_c%g#@%FC+ll1_CH}*!9=aZ}I{4?*owC|OByj|VcD~^MJ=wG=bJPNN* zw>xl0|M#yte*M`RUH3Rbckznj5Fl>XJLm|HDl^-copRy&{!`)}N9ZnIaa;k!t@_ zyy7?+h^J^~aD+$U`=8XBs=9sKy+=RN?BgCs=q_Gyd<}@xHN!c=qcD$|3UtN`4j8># zv#5IbYG5WBc&hBx9?&1~4vw(Os z5I@6Q;s}qzb6)pzkmKR^oHhEWRvGSbgzn-M$CH5gidHg?@F=WTbk7Jmu0Q6y(QC9? za*rc)7q2)j2I84okvXD>DwNo7zUPwB=d|i`#nlnIi&q@q0^$O#EFIxdSU>945WbF| z9&-8UFSUAgk0W#!uXglj0`WwxkR9PsSO@dOp7OgVf9smjA7~Zs9!KadUU6Im#Cx^U zcZ5e_2cX+l_&T0->y4wEv76YYTj?i{BXk$9INlD#j>?OATONgdiS9BX2lAq$J}>GX zN9ZnIaUd@`>hq$G@F-+Fd5%zHwc8CpAN6@r_c%g#@rq+-ApS{tQAc5vhOgu9 zmu=EMM|n~AI6`;visNP=9;&>kBRmQjPu;LWj*CxyaC^P-qV92o?&1~4zXS11UaDqK@z=WIS~<4PVEkk!@9)ySPbK2c4M2>?Gc}jchrCnasJ&w>_yyEyzAbzd9s3SZI8Bg8ZLyj-4+q3gzn-M$0va}TX|7OcoZ_8JT(ghIrhDFul6YAMcv~F-Nmcy;G2M$C@<;=k3z;% zHy)8=@9o#Lmnbjl9!KadUU7`KTho5@^s6Jw=?ITP##8qRkpp?r_9Ep)-Qx(|*eed? zMcel)FX{-7LdKJ4d4V9uk>~B*{^X`EFX|pg=q_GFFW~=>7j6Gic~M7r6f&N=hlw2g z%wC5qC-b82aYWqlyXT$yy;Nj5TVy#SFY1UQinkoS_6{J(K?E|XU0$^C;O=0xE560< zbs$^YB3rvJd&N_}eOn$SZXn3PSB{MET6-PgafHTgUB`i}bBnC=TIQ*}EsxR|0znSG zgUD zXIdOk8d@j~HI)YUI6~jYrEaXCX0%W64b9!F??6bIC$7V1(>b;%JPrMXfZP_SAkSTz+a_c%iH zyf~newNS}ws$`DvD9!oefD+e2iL34T5gteAc_j|0eJ#|!nrff7;()^2 zLg5XBdmN#4kT{?sw@{I5>dubvD6NUa0j0WyQXL5QI6~_=aX<}kp@!Gg&kKb87KGMz z;(+4bLU9j-d%Rt(OU1#}D^&fOs=gyUN^4Yc;N(DylLIwR4!Fk=T3?F;rxRM7PN+Hi zIKrc}))og&K(sgkQB%!uk0Z2C5C=|Kv^Zr^^OS`nJW6{8ao{9Ji<2BRPja}&5!&yF z1E)n=oEE8hTEr0^rM-_ha3ZC}iIkcrQrzPR?c2nGQ!gz}z0^GQ;s}q@9!?xMS<~WV zP0f=v?s0_npW?vjoffBeYM$P4ghy#FDh`|w8sUUca~%-wafJ5K;=m~+?zS7ALUM#h zX-_QPj*3uEm&xiwB>IhnDBP}%{JW9D5aX?EQK}&6R2dI{yrH-Jb2Esj#Q2tUJ&{9XxQX6Th zsczS!l*<$cwA2x_)EHg&I6`??aX?EQK}&6_prwwWr8d%1Q{}ZsDMv02XsIJ;sg1PM zRBi1D<@dz_Ep-GfwUL&Z5FVvmzc`?!j-aJB(o$2!x+A1hhyz;c2wG~qgWi@$NwW|K zwA2x_)Ihk$5z<@40WEa|Ewz!Bnri1gO4^G!prx*dmKq56I6}ISIH0AjhnCt%OHCE_ z9wiM)9MDqNLrV>WdmJJCOB~QrsggC)QmJi4TOK7XOdQZs*F#GUgnJwz9Zww4QrAOE zZKS29+YdZSnw~hIrBYE0gnJwzJyIOdQmI-t(o(54Mq3^wZBiT+{y`ZHgnJwTd$Io| zRK^b?QWRR!Es30Wp`}vc?KzUi+r?{Imwzu6S}IlKc;()fM`1*C2O&A2rLKjR+K*N8 zI0EmD{YEad)V0u3;~n(2JPPkDt9dk5&{CkJSscWI7#wXF+@+f>l zbyFc<2ej0+&{F%)Zt^$+-xd4KVrZ#rp{2$*%G>fNeA8I-qt^i~wT713e+QGt5%|vA zZ!bejt)ZpH%;0T#6lRR2e0K)4)EZi9KbItrBQST_Z%9K+t)ZpH4Cifm6y~v|{;rOy zf|goCOO097J&wQ}Y`=vKEwzT08Z)&cJPLC=E0Hu-&{At?sqr*$k0bCbvETHDmRdtg zjVF#HJPJ=D)=G&3T51g~wSPt>k0bC*wBII&mRdtgjVGtK0kMEjJG9gqT57Ch z9N|$|;jn^B9MDp0XsP|$CwUx!)!9=1y;NwaHMG=Nk(F&(RB`tbwA30}YOMNn9!~5T zfi)w~_33p$ORb@$#>&zW9)-0itG3h9x*3{5aYiOyl3U`kqu!iReN^w9-t)ZpHO5YJ4rPGw+cot4(LQ8F=r7rdNus8yH z5mtRwLH?a)#iXsNMFb&n&k$7RKcIH09A&{AV3 z>m z4rr+jwA4P=mpqO@ZgDyPUMjTI23l%lAiXV*LY|S;hvI;i+CWR~bC${D2;@kY^Y5iX zOKqT~MkdwU@+jm>b+anR3R-FdEw#_RCXXYK>t)4=#tK?$11&W&!rqogA@8gEUdaJ1 zwSkrzS!ee+0y%3|jEDnTY6C4bGTV;uDCDn~^IbpCQX6QgeJ(tC9D&?BD@MctEwzD` z8X0f}X(2Ng&7pEwzD` zT2sw%k0YRkuwq0U&{7*{siBxS!lR&zuu@YT&{7*{siDfa#}UwUSTQ242wG|bEj5%M zM|c$U9o<69*8wfHftDKTl6xEhZHg5m;((UgKuZnH%Ml(0or;y3(xX^o0xdNV?r{V( zw&nbLsjM-9mKsW&BRmRv8|z2K0WGzGmfCA~$>RuUg{&A^?ACCsF@csEilVpWQP2%_ zTQJ88`b`5ZHB?LYIHITvsZQ^*oUBW2ly#g`Rn=!aX;;d4#(&2-8JwmXb#gv=aE~LT(1}B8-w66(f$%6Pf8vm$*dfv>t*Tf4qFpJC;^6tK z8*%;$`K!j;@+c{o;@GECMn_Oa8}~Ruim5oh*{QFieeo%Aghxq<701C)c#pIPL=CLqK2!P#`=? zCl$oO^H&#l=dT*~I6@~Q#PJCr&hO4&6$p>gi3@Q&qdUnlnxI$iafD8IY~a(Us@~k4 z78(7;48o&ya)by}KJL?x zF~TucJoE7joTeheJ&uSIP;5T_y%~rDy1LW?QAYK@%1#aMwT!aa`2wFl(*IuNQ*C=f+d zs%anxwbU9_5IAMQ-^WS6;_3)#o_ZbBQV;JcEeeE3Nio&ypq4s8H3t+d{<5{IHmb@I z(mcgME%oC-+%<#nC@H4mpqBc$t}3N*k0Ydcii29}dw_tJS|B_s*SB!2q@@PJJ&us( zDGq9>N1-0)$KY^;M@cc&>o}{^Qd_96{V$n?#}U#z#c?+fPe)x5l+gm=QPNVy@pNdZ zTX)q?je8s+%~Kp}p{2eT6;)713xr2W{}jjjpryXQtJ*4lN!bz7JjL-?XsNdVf!tDo z@F*#!;-Hqw>N6tT;|OV<;-Hp#AQ1c{I>Mu*n2O^fXsM4x72Op;xW^IDjW)dGp!ltC zdi# zM7YNh(mcg+?_pi#JWBefIL?JK`YF60 z8Y^n4;cT9&+QBq9B@eU}XAHvi5Pw}~Ok0YdcienjwowNdQghxsL6bH4`k7$+Q9!E&?6bH4` z%e0blghxsL6vw}IT55}vXI%SGOAU`Bq@{}E|8`nxtjHWuM5Vh$IJ(hMcv~F zX`bS^2?*AuGB4@~kCOf=j^{!d-Cuc8_c%hDr#N=%wA9FpI>Mu*n2O_jP)1*&yr_E| zAK;cRGpXD6_?}Zs{ZHjZ9pO>ZKgEH(D7Dnci@L`V z(meG#cwgUxloxe`M@jz_$K6my4^&>%J&us(DUK^UEj6;71tQ(67a338tjam@0Z>N2 z+0~^sQbvQ_+m+@ijz@M{YUD*7;Zf2*^*Z+GwA9Fpy2laHJjHPhwA8y%m&z=sBRop_ zr#KGjwA4Vj#}U#z#WCu%)X0lE!lR^risMiyqn9Z!>K;c(^ArcQ)Q>AK>IjdL{wWS= zsjN$F+~Wvop5maEx|8yvj_@eypW>jFdJF1OnHP1BBcyqXgIemZloxe`M@jz_hqTnl zq`Jou(mch%`}$Ou+Bm|aq<@NoTIwI8%9MFg_c%hDr?P|6QX?PK z8)P|Ims%i-DBi>ub*bba0-03SrD8?q9^BohcEz`daB%ROglz4;?3E)tO1&il|8!H~ zT6-Of{O^v?xUIu~1_wtMS?9GJU2n^yG=@arAKyXMrS_v69!Kc?7Y9Ej$evSiFAyH3 z&w@CRp>L3(4}^Ohq0g~6paSrA%C-EoJHn&%Ef5Ek2Ht>KQ)zIIBlLY-!pp{3LCxST zn>D|+j_@dbH;KSMC?*XQ6P~i@zvtm`gyt1-aQ1;J!;>5Z!lN|Dhy%(`1LY?W?s0_X zM{z)1YM?IFoJAesQJO2o!JAc~VAWKx+~Ww%^WuO?)<7lW$(jP;QJV9`0VS@15?9CF zndy{HRXIY>D{=6I5Y#@NDe9j%(UwQ)*(DC%bPGkXrlRN`N9egL4ycw5RLh#rb4PfT zp26aPGRhl!1K}P=X#F4#sIR;gm?yRxM|hOh65`;gFetn=6<+r^LhB%L=yqeCJSz|$ zr8SW_bc1pr+~WwX=fnXuynz~CQw=W=>11BTT2h^?Q!~A z1;V4WM%C-U$$gaC)b~=^dWU)H7ed4_1qqm<(i2ei~0T57W$5bkk=@-yOqmRdtgZKS2@ zv^pw7(@FcPzn51Wy5qNzma5bBB|>?oWlRfr)C#j}^9K7QfT52OLm3g>1gz|pk;2povQdw!y=ivh3 zQOW_TCEoE1EtPdeeLisxq5P#dc*ifa)J9sWsyV94qm;`O2k-cWmddIWDx<1CDG|!U zii3CjLQ7@kOM&nxgnJwzokASYQfp|b@eVq|qoi4ggLnM0`b=7?YRPb~VyaQATIns~;2povQsa~8 zZF!Wm7jZyKT?;L>k(R2OxTY@s8Wo^aExj#|k~S$0&RNh>8`C+%;|SQiy;mHoAX1c6S#dy1jcQqOj9+>}v{iY# zcugC+x>U~X&{Cr!m#^I0@+iDM)!nj3&{Ee!OYO%hc^rZFX2U0U>0bx5)Tk`xd+u#{ z6y7J*50e90Di!zsJx?A-;4{W^02(XZ@!LpCO$d*|=S_9cRt-OC~RW&LhMDEp-Gf zHJ&)$mPg?krTY%Zp*w!#spcL>;F&mi$IYxV<@>=qexaqZF10`J6R+H(@I=+U4dj59 zI)awkNJ~u~M_@HD`K#u)!~rdJ1T8h*L2t{Wurkp76Xf6>ztB=+mEj&oU{y2e>QebS zc*ifa)Odb4!lSVE;c2mWeN_c5m3REcYRNs0(783e4rr;o<2P1hjwqti-6DJ)&{BDV zj&-SAk?E!odiuLXsupX;NmrN3*8wdxZak5enh+j^6{qesVN1|bN6=FHwP^A<0;}ao zSC>i-XsIJ;sj))#wmb^!VBOC`4rr;o<2P2}?r{Xx@RP1Cl^oDgdB<<8^c~?**a7IC z8FD~NQc!8EwzP~8arWc%cHPE<{iJ{;2povQe(I69!FrWKI!UG$pI~ucl^eV z-Vq*!eLL^?6$iA`7Fud#4cy}h1ad&rt}c}vyyF*IYGjHW;Zev3 z@s3|{u*O7nsmv55k0X%Fns#-mRyNOKqX0Mkdt}9))}<@Awr5v{c^l+vi@B#}UZ&PP@8P zazIPv9lwzg_O?6Ewt3gI=jaa$XQRjx>R!Tj$df0k=b^HM~ghwHBKke#L$-z5*p{0fj;2uXnLzs4TspQ}t zztB=cX>f!`K~LZvzZxsnn5Zt5N<;EE0$Rwlt4k#ZZ}L=KYJu=5Xe_+rR~)?K7g}nl zGVXB%G@WTzmr4%Z@f*sIBRmTF4)6GtRs=1zg_auXl6xEhZED)prIG_$Y6~qj6f8%0 z6m%-y@hcA2m_SSIHLv7x1T?m3SC>i-)|fy`WtAy4uY~X@Xm`BhR~)P{VO^@U)Z}pl sw8Cjumr4$3sV%hBP!zo_kAiNh$t^0vm&G);Lu(5csCkF{hZJQKNVCQh{&iAo9Qt$s5mer zf*^)KK++0mqA>~Gw{E|y2$}>8VB!!1kwM}J3Wy}|t+i{_Ijioa9{9aK>}KzE)~R!E zRh_ff+2mtFAU;BZg2i~6b`FCV}8$8+N7LwHoS$?=6d_N=#i_Ojq` zPqvHtwg37Dw9+ho!{6ksRJHKj|;BZg2i~59jzG{5v!Mlm058+YSCdZrS zURu9+*KLEtJ=remThD#Nc+FRK5Jw-vqq0qoci;KS`oXKW3=a2XyQud*^v&b1{_S(b z(TDJ;Y?I^qJzrnHZp)_zhkLSJ)T@4U!1&-ldAd0I5FV9na@@JyAJ@0;vQcojC)-8+ zjl17H-tdPTi=z+WQQ0QPzyIx9>xUkCXjtISJ=rem*PVCp`1+@=FOEKhM`fEFd;ahp zb-BmSg2O%8F6vMJ+u`H4ZTZVZbOYDhhw!LuljG`(-cw)n(07BwJ=rem!DUB{Uv}~L z#nFfGsBDvC_M!LHr@!~=;BZg2i+YDA95eptwO5Oy58+YSCdcruL+hK5{+r-%PqvHt zl@A<0KJ`;y5=S4xqq0qo_y6gU^~d-6Y;d?I+eLlv@)O64Py38G`VbzKZE}3;%%kcj zeeol~;ht<4_437&#<%WssyO-(9+ho!9KHNQ_4jW)C^+1c?V`TsiKmR;fBFI9=tFo^ zw#l*k(Z|$(esdKZ?#XshZ?M&>@r$;a6-OV!qq0qod*+U-FZ$HegTp=9F6v`{v1+`{ zTQ(F&AHt)uO^*LL_xSoXPy5c=0)Otwc2R%p)KkX`!!NHx2=2i?ghyqY9G4$|LVfwU z3&G)@Y!~$xZ#i|m^&PX~=tFo^w#jkfT_@BVp7HrL=wsoYY_spD@ma+`*nNm@REsc< ztFoF;BZg2XGZ&dVbk&5_q|gbhA47WQF~Oj$#K{PkFB43|C@uu zJ=td8HymGn!$IOOM3JM|mPfTV|NnlM-8=l;8xIJM9Mwf^yz6fl4}967;xGgTIJf0d z*=9>G{@jm-Z+-QC~{O$dsMc`v3lj2;eR~tkl=7nwr57?y?D*y&o(_y9EK=zR8f0W zw#jkw+b? zrJh%OGN`S1`lNR8RGQDv#6E;aWt$v$ik5or@(HK5;whTi#nW{@Kim5d9+ho!;B8Rq z{lO=-+KRV9Y8P*b`TUORLwHoSW2{!LDfJ%Y8%J%$TP?MVx7~bx*Wx|+un3RJHaYNi zF7-a=n^SGY+c~w1xAuIVGxQ-mD%<41ETh!CgfjrO6|;=gE@mI|dG6DP@ThE)1GA-4 z^DE9|)K*bvJLYhMJcsK;V6J6RtxXQh`YO#6@vw7GYsXx4kmsU(2+SE%RJO^1*=wcw zE@zgCirH&IU{*WGbLu{XM`fEFn1xrGw{wQ9wqh2Z+Ql4x&}Jt45gwIoa$q%4S(a06 zAund_VwEvyGM@Zw`VbzKZE_$lT3KFHZAJDpwTt}apvjApqYvRx*(L|FoR#H8)mG$N zQ@hAt4w}3uIr=44S+sIrJZz>u^uDXGZ$Ai=z+WQQ0Pk?x^5! zPqt@9x@*PJhw!LulS5C2;BZg2XGVJZh@%hTQQ0Pko^Zk8o@~#I^b{3GAHt)uO%6S& zgTp=9o*C(FAdWtSM`fEFdgBC#d$K(<(pya&eF%@rHaYa>3=a2XduF7!vpD(?9+ho! zXa*1*?#cGdNV5!a^dUSd+vLzpCOF)a?U|8gOM~Vf>_d1|w#lIxS#Y=~+cP80`oz(P z@ThE)Lo>^Y_qltrJu_O>%y-4nhw!LulS4D);BZg2XGWTZi=z+WQQ0PkX8OV5o@~#I zw3-k{AHt)uO%APCg2O%8o*8LXB#u6WM`fEFT6qPBd$K(<(&|neeF%@rHaWC{3=a2X z8(LAbt`$cg!lSZH4y}ZP!#&xa8ELgGjy{A(Wt$vY(FccnvK>3Cm=6#~A40i>h{`rO zl$i()_hcL2t0u1@jy{A(Wt$wz$pnXcvK?9~^E2Y;LnxyYQQ0PkGDX4Ro@}T5l{oqk z%1lL6w#lK4S8%u|+niHHzDyi_h;CGiAcrz{!I7irX`^OF%KM3<58+YSW=qOI28VmH z9a<{$m*VI{DB~GX*(QfFslnl%Y=@T0JghkS5X#&}RJO^XjBs$cC)=T=GM_AtK7=yR z5tVInD6<_L?#Xs&smzOuqYt4>dPHTL9LmrKhkLReS}ODV;^;$25s0X4$5=JmL~yt# z+o7dWrx1sXsOhV#L`C3 zbBd!6A=NUXvQ3WWZy`9`lkKF}iem``Ro#|DwyuMkaLbWA;7ABu(>iFW`8pmJ;ZfPv z=Rs||9V@k!lL%15Y3B{Rj^C zWIOFI5l0^aPq@YQ$(e0(;3>*IEWzQPY^QxP;^;%*Nxj&<0kTaFybZV)Cpg@b?X=%V z9DNA9aTeP*S+--Wnmt9q;ht=#eM{|F^&s%(Tx{RS*(L|x&fFUn9PY_>+J7aEJ_Kd} zi|x!J+vLD3gL}M!!#&xKxexb|iK7pJnM{hxHaRd`;$F4ja8I^l4#)j);^;$QMrKj1 zO%BZZxaTf7auhvnRNB`kjy?otmSZTc5tVJWgxM?i4hDyNvYqxPilYyK8S=QDd1sp( z+R+#s?#Xtn4OrzNjy?ot`Y9^gzqxWV}*Tw#k94S`95V@^J3ScI5h4V^W;pg2O%8 zj+{PgOvKTLK!!d=Wt$vO0a#-a9PY_>XcMe45l0^aN<)guHaVbXu*M`f+>`ClSXg5s zjy?nwlN6P0azK?~jY)90C)=SFvBpFkeF!K&DJt9KfV#vQli+YqwnOt`jfpt=5KypE zRJO?hm5enep{uzk+o9dD#zfj(9|B5Tipn-QR58+OcZy22E72~rLe`jMeUMctQwWdB zHaS!=5~`(pvduYMTMI&4e+ww)s2=x+rw*=vZ&c9~Yya}p!CTIZYL_-9{}<8xYu2`n zjWwJjMyC$;xp=dkT3`F$E~2m~p>gH*w?K|v|K;St{WDPqRs8e^rwsn>>Sc=-Gi7!; z9Pz(bt{U9;tf)llpt=Z;@)1dp1@`Kola3#}X+A31iZ4C1Fc@EZ{_oH$N0g_WGbK6tSGP3w)9MtGEu zNJ1^JSLd()s=+^P5%s{upU=Kw@RE1$Fx75C!07hM5r4bkn+M0dH!5-+FoEzWACUxE zAjf6<&JH&D!>H&kp7+V+gWEqAmDed~(&+Ze5$k>M4+bwgHfpLnpf19rd_)ptfxY^| zzdUpBkFR1q7yk9jZ3erqe$($TR*u;5+Fb^7pL@*|y4x#{@)7Cw>hQ1LKY!1Shcs=C zHW=J+AS<={|GFH7A;$07bnu_2vzDy;*F|`gk4VBSaID^T%T@FDo_lPx^{XFVKfmkY ztcmLX>vA~as^f2)zwx_APNBO9kLrv_OS!;aeR!v%=KpLrRs$8qMR%VuzxTB#PPN+t z_}?yvBi{4LOXn}yf%Q?{zb?X~d_)pvfgBsW^_IOid<^SViekmeXV3rg)vWXB|Lbx% zqI&2R^AEg*l}O#cF2bXHL>#kFEu8=5(V>6e^a}P|YkQR2T@FX=cfe_T|NNMyrGA7* z`G^E!p}{RwxZ1^bd=Ry+9XD^+?QX9e0lsyQs#ht>MSB6!c~{Kt_R0~s=NBKbMekK;%66wOgKB0;jyP%Tt=la1SVAKn1t_MO=2iv6S8D@Wj6GJaHVoD}6F z5)=y!(L#l{{=MUDAj@j*%BkmvlzE? ztxi|$AKhL#0&|q{qngR2C?AoaSZIhAD$FLw?fet7uyH#twT^VmZm%4H`P}$X&H7T5 zk4TU#G*k-}X5Qm=u8tY&xShjyx?=z6_R0~M`;H&g3^_&lhy=w#L$pv~l`?MEHJIIx z+x3ohq+@n_k)nJ=f@GngTBxul8@Fpftc1qx+OX3V`$xA|j=-8~{HRu5 zDauF0C@^PGyRlMK54)>I4~O0DRR=Meelru?MPQYhW)(gnP7|wCerm`-6kMh9(+u0A z-0pHXLSr?B?jk(ON2JT4?`yQB&v~ldF2eui2z{@n(A{2nl)jY@gV4Pl9^DgDQQnU( zha+?kPNBO9kMa@ea_BiY;Q!V0BW#ayyUXDSJ+G$FU4%#Zh;%vh&WN`3tetANi|~Ir zLeKUobhlR?+KO^d6i-cYEbgJ|f;~tWr69iMI3(pK7;@ z==`gh2L(cNhADKnS01Gq$HO2rZ)-fwd}k`E(~rvkr8#3DG{2fccYEbgnw>oiLUY{k zXl^(a<^AY#I6`yLDRdX%QJoPnl31m31rcp&9zE5r0VbZ*j?lb)3f=9MNBM|!Ika|) zwzTG$YPXBp;HoGEm-S01Gm(!(IM&J2&%XH!w$k1mHJv>u#7cM%@tBhux-)p8Xd zZ6S)Q`>A%j2>+KOv?`uLPxXo`?1=Ia@m6D%%8W-uY2827ZWrPIa)dGnQ|NB5JjzGJ zTa8sJvqRAqzJ1IZO|{!a_`e*XY|9k7+bfU4y^==6TLq%Yi$zCDYPXBp-~yeV|ISDh#u5pOkCsm#zuTgp>T zwcADbzZ{{A=M=izE06LK@m6D%%4~MDg|{WM+*9p#5&kbnC_6lb?)J)~@NQ2d;;qIi zm6`u&3o{EU0#ogF5&kbnD3d;g?)J)~Fb_&2;;qIil`2WhATbN0dNMVe>>~VMj*#l` z2)*(s%o)>&c&o8WrJ@u)!Hktk)9=tLM@XTWLU+f?qcFctBhu{^Rw-29qAh7qQ|)#U z{x3&J&6+}Yd*xABi=+|pR%4Y)r83rlSP4MgbEEt@d%JE=_R10Y8?zL`qkKfVy~_9Y+$i4@-mcq|y>djpyOu(Dl#fWa zSNSk+jV=gSB}WD%%u<>)fthtTMOjK>w&pZo=1DT zZcp~g5qU5qVYo2)&|~8XP_%-CpJV#oP!Z zs!WKt>-OYWIRc*zRnm!TnnZY%k4U#yIoC5c!ncoF>O{Ls^~w?W9#bWqKu`9{qkKfV zy~=s9xe@MEYN-?LF4ZeX;GU;SI)R?-l}GuAbbE!TGqu!c3r{s=BfTeXPjWZ{&qu1H zkI<`5RLU(*a^!sL+z4*~Wo|vn?a5v_0`C&4q>s=mkMa@ej#bW0&yDc5q?S6-?oz#S z1m3$;Nhi>g*WpnnpV zRw>>Sw|UyzkB{4v9FD*`fhy@E^va`rM7q6_a)_1b+z2ZnYN=u8sHJ-42&}27l0HJO zJjzET^YO~nZmbm5!|tlF^BtQUs}2Gx>9@Aq`t#{qxzI3m*R|AA+bAEAZm;wiEV3>2 zJ?tE{)L1z}qcDM2scFcd1@ELf@DP^klC*%15NzE8W}CmhOp( zc9-gvBXoC7peK9fQ9dHwUgv+S1%`qTQu> z(!(IM&J2&%XA@CN^~w=i4^E&bd*x9+A~9AA&4?}3xLWOq zo*N-bJEgrRZclPJLaX9O?iIDvb`-SlSsbZX%3nm3*8LOhF4ZeX;Iq-5?WGVNUkc$-J|f*-DK8e|gF98#3f`{Ulf7~T?s?S$ zEQRnWACYda@N`xM$J_`{HC1+ayKYbR$`N=zs%~N_L?^1rE#_}b`d;BprfQd1rK$?X z+jV=gS9oV61l}d8F-J=?@P17QymwWPvlPOkd_=mv z!VF1ORIy5>mYPR2LYLyeTqGedM^Ww4QV5Uo5$W~{vq@E)#VS>mXx^^dlVgQ>TS8zy zr#i2t5FX_t((M&y-m1=vRjR7?yj`~^dxbe}LSXKznz*G99_1s_?G;uj)KX)%joG~_ z9KBt)Cwt`xtP@l}xD>*pd_=mv!kSD~pRr0+HK@1i_GGWHc1j4WsZ?vZ6vCr?L~w$@ z9XFSQTQ;fx;-T5juLt;Di&HAniT^kw<(!|E|Gn`>^#wq<#}WRND2m4daUBrj34}-C zl!|oXe^Ko5gZs+w{^l|Dw}5buBf59(NkIG$5a&!FJPM~&q!a&(V!Qp;t1f)w{|-L` zgnJy}Pl=*u1-mE(7ul{BDUqHCW5&lFiijQ2jS+x-m z2N!#E5FWLv^GgC>``#ASzUwaz-w%X)9MOHk9rpb#stq2qIQ#;7*85Sj@j$Btq$Dzyg<0e5#8tRhk^J@AdUiuBRmSHRHPICi{dG_ zZC~B{nvVs-J&y3_Jf2s#ZeRTq5Lbc25gvt8D$>mjCIHLPD_;(<70^-ZyaD+$Ul!|oXe^K21 zwq2_auALu#2?+N%!rwkcan@URtqxr?Kiqu1Jvs=F!YLK$#Q&mr?c8qF*Z=Q!!)E~D z9!K~)u_%56#CC7lZg?o}C`Wh{PN_&I{ujk3Zrr`v^Gh2B!aa`YzN1dKY4_?JAdbV8 zJHn%IN<}*HzbKYJb6IuMSvRaD!aa`gcVbbDwpdo355)Zw2#>-k73swPqImohXRCJ| zcupYP;|PCK7sX!#u@Z>=z~Kmw(h2j(4)Y#-)|Io>H*el!?H>c-9!L0G0>62F`E2!y zTlQG{349)o@F<*8VJH6Y`p|53|HVhFA;LY5@Lf+u@y!QktJRkrvF7dxL^tZRL9Kx~iEbwnqsvmQMBkSofqFL_S=d;B~) zp8Q)|IFHVLGwenn4g%s@T!$k(%Gc4DCq8&#xwzvtfpCu_aIRkZjWWEWfVcpNd%)oc zkMfl_W@IltyPSFFcJ;4;aE~K!K4AK-HN2gHxa%F;)jQ(K9pO>k75(k6SXIuxVaGtY z#}PQ^F#Tp+QM~b$tICV^-LXFN!P(jo9_5)3yw!F*q&k2Y&-3dofpCu_aPDOK4ZouJDy!OQ3uQ{i7ghzF=Y9BcDD=TjM%(6hZ#}PP}HT}jVPV7D9D=RKNe_4GUM%NJ@ z<=IHA8}~nA#V6i9TVD@^dmMpNXwz?XVov>zBUW7Up4s~Ea2<~DsBV_?ob&Hq{^461 zgnJyJvv@UD`<#3C^5M<1^@-?}BRtA8#YOzRYok2^;T}imEM9Q{ve1LziM{G=2%W_%jwikS zh_xTXC;07VtWsMZh0jT+RFLBZtG=@KVtq^8;|QI_D~>aP__4l;j_@da-*hSlIrjPR zU2ETjZ~MpaEpd+{bQZ5T=1;q8?N@b2Il`lG-{{NTxXovWx9bV#2#>;Z%v7LrUiG@+ z&-D~_k0W#zuQ-kd;u<}v9pO=U9_u6wj@8QT4jJBww*hDR?s0_9;uXhlb~t4CcD->N z;Zb<6a2Fa7B`5feU+JhGk&(|!&J&w>>yy92}#Md;FafC-K~IctZB}*X+|7zv6i6 znO6b3ku-|(11>yy8G!v_4OHQAcJoeloxf6BXkyTJ61rPsl2EoJPH|4olL{) zc^_|L#y2lYZi&q?v0pf7wMIGT$$aw197jpdevd!vCl^1o7BaoTo>Am7O1BiPr zZt|jz@F-+Fx#v=2_0QkiqTWk+QTI4PXYq>TJ>TD=-d1^0M|c!6o;ojw*YTKZx2j*H zyr_E|fy^Y&yMhe zs3SZI8Bd+6Lyi|-w{86<5r_|Bw&VzpLdH|4_>kktw{2gq_u3{e z>K;evEM9T^>#f_@>y#IDghwIcsWWoOapaXd)mJJn>K;evEM9TE9*D!07j=Y3A>+yY zsX&n9%I80?{?*k@UerB~&{@3V_%|T-QeM;%9)*mj&K4raop0N<{yFlZe}mC=k0W#z zuQ<+o>#p@ZSItM3(-9tpjHgcSA;-RRyVa*FFX|pg=qz4w{2GY;l^1n{M6Nt!h z){VQ@|MkTtFX|pg=qz4w9DCF5^-q)+b%aMD;ZewV>O3KGJmHD6^{?OAZ92dWQ zy?!qhSPzzV7Wj_@dbr^NxKp@z~>65$?4=zbIj z)QlQxMoIm{5gw&`QyfrCYA7awaE~MOToDIUnHs80$y}c!JW9_PaX|U0q5PCw54y(@ zdOnH+>QW7LsieB(2#?aUQXEjQYA9GG6)g8SLeF_|Kqaf8l9kle9N|%V=8FSLTn!~I z5bkk=-dEy)+E+vEE2;K5!lU%=636v;b3#!psVKU~5qj^61FB^W)v~0{=?IU~J6If0 zMr$aefpCu_G=C5W)Yls7Ye~J<5gw(vgg7{pfx;UI_c%iHph0sFLPf5jBA3*i9pO=$ z69K_{5K46or8*GqafIe`;(!`nLk%yfpF6^%G`AB66!#j6dm!B7h*kD$6-5D6zlN$` zQq^~aM`?~K4(uGLv2&p0&H?v0Li1}~2X-ga*qu;vcY-54N^@;-UiS{&GgG{i2Xio1{;;Za&sivv5IhS=#;je&5FBa{yi2X<2p zv74&8U;^P$$_aWuZqY#~}`AsY7U~fpCu_ zl%Ej?wA3NA)Jj@vs?PK%vEtOHEau9;KX4TO6fq5P#dprsC>rB>2XQ{ApdDVHe@XsJVJsg<>h4xyz6!aa^qK3N>lQisq|D`~0B6-QehrQEVOprsC>rB>2XQysM< zlouBVwA3NA)Jj@vLU@#N2XQ@y++q#KC?TIyP8sg<0jc2mbw;N zY9%c-ol@XY(!#_6Ep;ul)Jj@vI?KQj((%LrEp;ul)Jj@vLU@!^Kyg4zT>~vO5bkk= z^hj|)OQmXANlQ(qA9$3sNpTeTgEATj_c#LfT>DF?jPFIHD73^n7I8pJrNY~CB#*a? zYohL~>wuQJ99n8zxwqv}7!lUZhyz;c3TUbASS61m@Y&dJ=5C^o>5?X2{Ep@&!y(EwzM}+P-U(#}Rn9+i$ExOD&GaOcMi33_{2`#mq z`y`JeFozrD-%Ev-T0%>W8Ckb2i)wbgi33_{2`x2decIh7Pex$Q$bEgf4rr+*wA7ec zI>Mtc<7CyATGCFyn7z8k5t#dOf1)^`rE<4n%#a=7QJ6Wiu1p-zQcGy5(JS{j0&{ro zpcDtR)Dl{1%=8`MQCI=6j!hiUQcGy5?b;xD9D%h6D@MctEwzM}8Y>oW%cHQ8VJ(?B zprw}3Qe#!*9!FqJ#flMeKuay5rN&q}!lSSvW9^zaprw}3Qe$=J9!Fqp$chnhKuay5 zrN#=<5gvtgqR!>yJqRtef|goxmFgZxV2#U)5ph6Et)QjGO4tz|h4n5g+;knRF@csE zt8Mo<0&8_vjEI9ZCeTvb)plyjqp)sgMV&aHrB={VBWvIuMwuP8K}(G+j(Z$| z9MB;DUMjTI3R-GpiX7ol$Oo~`PaM!vD`=^ajdG78kjrAlh^_-#Y6UGdGG31GDCD(t zhAGDiT51I?wat+wk0X$i8|2?hg_c@DOO3Jewmb^?IaUMeI-sRi&{6~89!DUzILN=3 z${G`BsgZ$nghwIIsIy;r9nexMXsK<^GI<<<94RYC=9~99wA2b(YAG!>Av_BCQk|?y z4rr+rwA42Dnmmp`u9p=f;((S~K}(H{u(#z=$osNJ5eRZXORb=#M%LLqjzG?u6(iz+ zmRdnejm)+qJPP@1)$mkD`=^q zm^i|tpo_4!QykDzD`=^$#*#dafTqKW5ph6Et)Qib^5boJ6!aaP%geEXmRdne4Ry&q zj(|4BiV<-@ORb=#hJxh?kAhCcdQM#jwA2b(YO8rAk0YS54f5}$LQAcnrG|FrZFv;* zHr9_yyMvZmK}!vUdmI6+kQF1+2ce}_&{9KDbc9DiH?*^OSz`h%HB?LYIHK^nkm5Sz zEa#j3SCz7k)%6N-oFCd0M zteQZ0lrrh!*d*`2s@&rUW$wj672w=v|5XR!QBnlN!Tnd~V>i{w=#_gMAq7GlR5P^y zs)O(-DI4N=1r(DXU^f*qMU{ITAtgl|Qe}piGjtFhC51*D>p}TB6Z@}z1cZAWAw@_W zRF@v#)TMS19T>kT5gsMQOxHmr zZa3_|BEmh6kU}Spe{Iyh;cXKLkCO5yj{Bh~{v7+Sh;WZ1q%__* zB?S`*j@2?Kqwj3?UsdjLgcMV8oYttXtTOE&JW5KeIH>U6gWXg|1K}P=Nck1Vb&ZP5 zy3`KBqogQ{gZr;8YW81M?s0?^Y;jNxKNg6a!Qlvxk}@ui%b~ch*VLs}?s0^acyUnG z-?7<$)j@ca6n=5sg`EQ*X!c)K?s0^66o}(Y>`piYb*ad=cMu+>oeJW34R%0$4g0UQ z0Kz?v(9Q^P+y}&SoBdZEghy$|g*ZNrog8~$H`QUd2i@Zc?eGu>cZ+-qh~x2jIKrc} zb3`03!H$$0v73qr_c%g3Rm4$a*UNd${;LkcqqGA?92;V1&4JiWg`G8(dmN!1H|v^v z@G>Ai1O#^PbPyh;ojgGB9^4W;gsw$hDiQ8+gmw;zgS(Jk-qfXb5FUlu0DqNT9Nd5P z8|Hwrtenm=3z5v)rk0`rgT;m)e~Te(_% zdp8`XV_xzc%uBwFEBBd&&rzh9q6I$To|bp3+i!rbT~H@%IJ_;7 zl42?jX{j-jagQUUd5VKt>J`n-e*WsT_T#Ty?NL%p#X&9gdQ=avSMG5{u07y&d>&fr zi9qat(RD;8YSdOPaI6l4GWr};L2Sd%qvL678j4z)r>^4$Al}u`@Fq;TdmJInQykP% ze~U^aKB*nyQMulT90#e|=~+Oy#}UZyFW$bvN#eK|h@YZ9>em=6M|hO9RE^bh8!ffI z4+!@-LYk*Ij&HP7Ru*><9wo(897jP*eLkwsh;WZ1qL5Hyim9&SNNB0Iq8gA0_c%hDr#SX$v{Y7^b`TyV zEma)UQa|2QHS)K~RlT@!wIiV8sn(Luk`FgpYW-F8$`KxwD=IlwpMsWp8mcpiaE~LT zdFnb|0WEbc>QYa_bvVMKpiPdN-zg^t|5#;8gnJwz%~KppAgHBA6k5`mfaEw8S}J=5 zg_j)3QXgUR7S(&2x*?Wj!mGYo~}>O z+wv&spW>jFdJ*bU`7LpeBcyqX=Qp4j2X`bS^4_fL0OZKgB^U^%tm1<=fdkj*#Xl4r-~trx}1FJWBefIH;wbr&)%393jn9 z9Mn?Bn#nlAqojX|F(Y$CCn}vF!spdLHd<=T`lO7Cy**o` zsHJ&|<0;TmZ_>=t5gsM|Q!P;$ZD+6UafCEaakMA5FxTe@kCOf=jv1W}!}+dz93jn9 z9Mn>;Zt7Ay2#=EfDUP!mEj3mX?s0@PPjOre#7mVIb%aMr{}jh;qoqb()IE-n<|&TH zH(F|}CLG~W(m%!Vl1597yr_E|AIjdL{wa>_p^Sb;c~SQ`LYk*IsHLt` zUepmDCB;-6)KdSfsY|Wg;|OV<;-HqQ^ZGgnkCOf=4r-}9ukU1huiWDZX`bTXd3|Rz zb*UYMM@jz_2es56D=+FEM@aJ&$NE4V*3_j|j_@eypW>jFdWrI)?s3Gbbow6OAJkHR z-PEO4j_@eypW>jFx~KA@?s0@PPhH2mp`~u4yr?5QO8Tcb)^D`b$cwti5z;)xaU-2x*?m;ye*r>UyY4WnR<~9wjXm2tIfBf-?F>hbb@W2#=EfDGq6=LsTMF?s0@PPjP$)TI!z4i#o!iq<@Oz$BmZCy41=& zj*#Xlj!#2N{dH59+Cg}f^iOfT0m|q{l^1o7BcyqXgIem_loxe`M@jz_2es5&P?yTQ zsCyhC%~Kr5Kui5^Munfz)Zi zyw9JHF?s>&Qi*VnBMNG%QJ2c+F0!0FeJ}E&j_5@3B)+IiB?l46q&9icjwiP(KIBEo zL4_CD+U4w3oCBz~JWAX^kb@@`A|p%{xxJ3?I6~tl4rHAxWSv=M+Cg}f#!wu{Y*)x^ z2f{s$(C0tjTnDn}6|(14+}qD1+VUuU7l7b(AVXgvLmvqDI6~iJaXXKivCKxyKQDK8geCQU!I1J5o9bkJ8gs96VVS3Kn<0v`^9S zI6}{PaX=-jpptQCO$XsodghCRC&WUDE2+e}#}Rs8iGw?Yp!RWxPzT{rdUuHfiXu^aR4A^bQsWlu@48%e_(U+c`Xr(ELFhP+u#kuiUZKL3otr z65`;lFetnwXEN?_gyunm<{pHKTtP)HIlpp*M`=z31n)s8)jUBt5bkk==5ylUDa}yB zORC|H@F>mg!~w;u`ieX|62}oy=Ww2ZVbZp>={du*;&tE(`AE>>xZ!YX)&}#iHGx z?P?-Cj?j8X99$J)w@ArVk+76*1A@pOFd zT<#z|N^5FyV5bvL;IEkdaE~LD4-f}-Q;Ze#Bhyy#eO6=I;E^jKM+RYui zw6qtzXn$cq9MDorXsMO7)Pzv>Bchb!5C^o>cDFi}QSChsEmeEki(2^^aX?Egp`}*L z;yA*il-&`BGDR^~?s0_jOyc0qeq^J#v%k&zL|Y!EoRc_s#xJzg=#_gMp$wZiprw}3 zQY&exsw?2LudPtP6DQR)@c%LztB=EX{ia}QOc@|16pcSJ4s7b?b6ECj!=GI9MDorXsMO7)P(RT<@&_| zEtO~dR?<>cowahcBcyDI16nH2_>E7{+wv%B7UF=GT0%<=gnJwzy+s^6;}=>g>r$zu zs`_l@YLAlkA`WP&E1;#aimp{5<}qmP*yKl9sAk%ayA=O4_72F!zhPRB5TI8SNr~=IOoSSOSrvz(KuM z9MDp!@Ukwo)oa7!?c$oKJBtHaYErSQ1UrY@Bn&{BucQrl-q@;Cy|F77W82eee4 z@f%M#Z_A_b98-NgIiRIRb-%RKJVCLB`q}}JW6|8;`)jLTIvv5 zDo-hBcfEwi5qSG7{%q6ZbRE!AhtN`4m)b#i6y8ybOH%kdmMpx;^MA% z@Dv7K2eee4@f&YWM|c$8s5-ZS96aL}T59{QO&&+!-M)Cqt3MzPp79GUH9kRa%cC$e z(D@VOfR;LhmKw7R_c#J`l*OhlmDd3+bqFmrW-^ZOD9n8po4QnTKuaA$OO4r*dmMq; z*|@1oC5O)VjTxCEI#JE8xAQ~VwA3NA)L5}N!lST~(Rn%K zfR@TLeq&YS9!FqJHE!xs$pI~uXZ*%$!Vw;Y6&cU?)n^VZm1q3M>drlmz}j%!)TNRG zS}M=@jTNLLJPIpIp7ARVXsI={)L5mu#}QcLj+?qva`22_XsNLhc7#V^y~{Ix#lcgc zprx`dl`G-oaRk=t z1ad$;;}-~W@Qhz*sgWsighwGC#4~=y!83lLrA9W&J&r&wYuwbOk^@?54J|b?UXJi6 zR!T zj9+M}p_n+rqo9lMj9*;`&-jIw8mf$Y905&d+|;F#16pbgEj5%MM|c$U9iH(k4rr-0 zwA4_S+~WvnQ{$#Cl^i@-60=u|x8R~*n%dB$(6c_oh{ps|gcx>RyNORb@$ zh7#v(c@z{np7AT~4q7VD_-(bj-89_>>^w8soxOdv(`vo`3qASLErP<1>GLwfYzSgH>7kX)hl;JG%y$c_a>>_wF=Z zbgcqjjz8^VDfE1}3%Nw``)|*lUAyvjVXEBvP>@(bXMb62gJSVJOm8s5jznQqMFfws zV}-Kdd8r|_IbJ_UP3_sTq@yK7P3`$*!oyu^H@{O|+2_{-Y7e28zEV5=jk(${rf2u6 zjewr0sa5RJRr|5{-$VbZ;9oEJHxT~Cf`8%gUq<+s6#swc1!G77aUl^`RdT~KIT)7) zlC5b@Nd2K%mIEHRK->Zc3MpCWgeKfZ_gqtJG-%VL-HN2{>o^u@IbaMz!*TICoF2#k ztvD04(AEt?$Kxtt6VeHgwwI`Mv~JIgIrLKV<(|_65f0BLLyn`FA5z+VM0Y@}>)bxP zsjLq~np(NHd*&&<&^X|QZ)C)&66UR$zk6}p*wF$2gwDn>66R9AdRE!7RifB6liU`K zn-18_^b~dZfv~3s&O;M$3q+`uC!OrSUIuEvzPWu5x^rxxySR#Yg9J+RO!mV?A0MAe zZ`fa*b67}Vf22&WY@u+O#|Ee%^krNVm^l9~wFy)Zm?UQvyMUdujfLe4pFw&}9YQ-? z)pSM*w%rr^pxsL}2`D3|goPoH@kP-nlhr}|4Ne;x>?>d3TL{t~Fc}P@7c0?MG|Xgd znq!W4#^Ny5eWlCvMmL9nY*TayP8t>A#%1|nkA%D}QA&5=o!zrm1X(8s45PAlZXk&t zf2izG_QMnNp`vY2KS(wjxz1i{EX}(!Jv5y7`=C`>yxar77TfXn;o<{~%Ywfa{;63G zF4^i1SX_cas20{wV*<=2#L|V~Ed zHN{Un&-a|BF+qYw0%p!?LReRx4;XtLY1pc}?pBLim|+Ie<`E%`7B??Z2}oJC;D&Rt z+Q4po(sZ#8jQqwtH7(6kvw8a_^6u~SDFeFLkq16#76JQwqR z1O8}}0nLJd&&ezN_CUh*h`SqY_vm(a|5m)6jI%D7NToBgMb5n?GNTH{6dIyY~h?A5dLTHVuyDOsvEm}|GfwIo) zNbUDgJHtyvywk1Fcb!0u6A@?dA!z4Ng|m~c;9l+DH{VCJioac(1BoKdtg$;m06L~F zOAAs_A(mv@_2yatz4a(EdFgq4<)pF+t{iPFsR-EH-4v!D7?{c(jQ42lR@i88HDia3 zb7m{mNhC)N8iZyuk)faCS}MTI*l2|Kk4aE8o2uSbnT7oto9K35&U@R&xZa_NpxL-Y zNVcxH?ii`QGWBz$D*RddfU0uPpjqUGb;o(Q3ITpQS~+rKph~ zKDDx)W+S!m;`Al#4q3L*p#6pyNJn%z0_s2f!K^SIgl*Q{6co)8p30s%O2;J9)syjQZ}x>OcjE;P8{n*r znC<`#+O02n{Xtq3+2REY0jl5+zQiDBcCY&%s~nZMuP(VUu1cs_J^bKC`1qc-3cc!_ z6Oa;vi(A4Pj+V%X04U7eH&ROybsE)$*=Oi?T54#un@VcP3=pJW@uK#YyLD$ zl-SA=H-gM=WPHB)o)XPzbjphxPXcCvQ@Nlsr@;Sh|5@7y+f;g_n1J_jJnn3KG%Xcp zXo~(3=U^3>eSwFuNj>loh}7A!1+$_b!#pj0R{2GogrWsI9cj1YfF)wt>H*plnKkyM zbr2tA%F|T?v;d-`=$51p4L3(e*U3x zNypv(j>%`@XP?(-Hkn!B@@6h(;Z+;$l6&uGV5Epaggmv1#8ir zn@w1*w%~#E@%;#$t|o&2v!rndFfe4e)_mVO8GSAlA`)2Cj=YkOJx-m1JW z{LdBzQ<)5BLq%KibFujJG{c1C!85!G9+cMzxmSsZWFEv<$v)9%MM>V zd#Sm^B~y~b^GQv>;M}SdvY%TE#NgXIp#(Xx(y8UkOnvrk_H{swqpN*U)IKgNl!hGc zw1NizbpX!?_UcXBw$LAqqsvwYbQsy*$hYD-zds+GA8@x-m{M{I8g?k;YDq+|CLzI0}YW(a@JgJzH z&Z(D^CH9sT8NE`fCl8h89bh(s9{j;x-MVW&A`;c zzS|yW-dYwT++wFmN2qQHOnIA`Y;}cUT`?AAA|~TLQNOLPV5BLTMlZF=2h9}?OlyO> zgARXKzBV#%%j+gj+3aBFB#+^B#SB;HShMem!Y^e8->Fc?Eo5_B3Qr_n^-AV2@0MTf z3_~W45D2Q>=pncB^iOaMNb04yZ)Kg7bPIWC@7RYux&be;0C8SJ1=rU8XKd1+D*mp|f7j?5Vj2$C$zhL5-v}=!XGzaISUDuBbTp zRx^MOTb8~15L+%9iHoyhj}^rrri#Bj+)5qQ{uoIb+6?Yai_D-moR1Kf?6}U)qSA57 zlDwDa+hGk@`zTM%Sxd;9vc(e_N%jZ*^s4*z--C38%gt&=wF0!hkRvlTrSbnk6rQ`( z44y!$Vw}D(d?>^qG^s-nd&u~^PR`5uf-^Vgwm4ClyJVKd+X&>^dzn%5ZdjNY+_hNlS_Y3=f_nR!<+3T%2$$_eoP$l#V{%gFI&!t zvClfO(|vV9@**zb?%itB8wE#V(1evuwiJ4PaB6&QBiqH<_zzi|w-A~UkNkC04*ywB z1ICCIdMTMWU&c=618?OK>uhB({=oEQoguC?z$kC~ws}u~mX)>_!9nBzFS;Fy3%Mv# zw;;}!r3CMeJM?Q_L+H*M@#0-hK}AQ_duH{#39EBDONXV5HUC9IOdmqPbLU8;PpI-z z?Ud|@H^1>_0ht2{%I9w>?o$CP!5_|Ux@m(R-R4%eZu_Vyet3S=iw>V}+T2o047R{}>rJ{NaHe_SkYHx4JJE zl{U1l>>tEDv4Z`<6Xl7QC#`|raBD9SM@QNjVxRSrk6&!LZoVs3T}2(bLuPs;*CaWU z{nNcSu!iO$Ic)DIR`K?Lle9PWNHj>!RNf}7tn=xXgIz0BKrGeqF zH!_`9*E(p1o49eK64Bb}Fd@9bJ=)qyhk5$))P4ufpb|YrApn)t4~r8=o3IGPg|xI; z%E>NA%A3*f8DIWJ*NJ&|dNy&Rz>&bV+ssw@JR_>As)DtD=xg(~Ut{SIA~;E&;chmt zUddv1okP{-C(8--#E&h+h}P6~)&w4bxl}s=`iS|7NF-1_gpB;+4LyE|6D}ccc=R1Pp^8kpIx$7x4=hq|1KxE ziY`2l4j#=%21;JV#hv}wDXfO^TP(<@4h0nObO6_k?zsi#tRe!#uicKlLh?pqcy9-% zhnAL7dQHIpNJon}wUSE>TShR;M}>aZn*0ry9|Mtw_9%0bI>G}qWkGTI`q}ftDxGYU z>Wsauq%o-_^q!v!&X`b+Z6XlMzCnou{&b0x$5aL;j#y*>k^jatUqkejIpr;H>T)tI zz)eecTjQ^4y6*(=)*Z;+6Ma)gb;aF<5vH@?gNmDfH2gUNYz@1lD?%~9yUQFX8OL}>?xbK#SV9M>L7Ao zTgzMPAqRLh%M*P!g-pYVFkmmFiI9O%g!3NACZUk_7yT8SQnozF52;yQN0vOzw9<7G z(%)RkCUNY*F*^calVc4=D_Q}EwPqRQo>o;a(JNZ&h16!wZF#1_=rXp0u9aEsK_7y% z%e*@v9NZ#jp8EP*&)XIj3A;lbRK?zC}}EQFpf6P4xQ`cR%@MAz8=R4%be0?uC|Da0s>PTEB!mS?EvUn z_FomJv+2yL=8tfXC%u*_#IEL}9OLr%G=HQluiaDz+~qpEq(ENiCCpGJO$K}uLc4=f zF7f_*I^-g@L0T~;=mO3}lOy@R+^;0}S>I!Q<)ebp@GKrqUO%?x>flz#cxbFQ{U^_AnKYJNAUh1LX|#PaHV(!qLmON9J7Btn7A9soGf>$(oschk^*4cVKuc?6bphoal`T7)rYen<;)1V$?nJ15}_w zEJru+h@{>UhrYl&_m)A#LfZOo_VLwQ4-RqQgJ&~sb$x~2{PL~4%&C4mg!?O!FX3C+ zAaHzN{>9htwzuyveE5K>NpQ{GoJn%(R$OoG-<11(YgF#E!H@x+7_+DhU8M}J=T_{` z3q?)>v}ohpan@}y6Mck>+U-_G=?&rz6Xhkqncv#I2}EuXpyNY5wxNKeq$*qC>M!#f z{?ZP}e;8i3c?l_esa-p@Fe?6qncyCO1{?0p836)?M^d_y)}0O9*e1g3kc;=q$!GR$y&H=yQxO!rn|MLcGiIkI^b zuHM_oURDptQHiAwr=o>L3wZlyifv6~R?E!QTFEgN(|Ouil=j8mfj%b~BkBB^RLR;~ zzoCgpiOl865{7tC`>-eStM{^=rwp(yAtRimwN- zcqZ4K?~3mNI^Vm2bjLAfvJ$^r$5UXhIjU5FG@eSj$PZKXPs}k<+}{key#Js-fY&ue zOI$*{MegI{vjB-x437m|od#mzZZy5>9oLDY6g)o+x|5Jf<=luDPEJ=JtaP=ZIK*L) zMH9b8w>PChyvDv$C3pi~aMYu$GnDAice@c5rKGFS}q+>96mB$`<=+;v23c6QM07ydQ+0lwVaTo0aOM$F!RI! zA5MNFyJ((%Fwr?q!fl1qQpAraQZg)7T*16G`x@AkXY!&~oPb}pHvHB#fZj)g&9))4 z3Uz1}7`&bOkr~YDEp6+KL29%5TT+iLsF1j7DpZnT?ccFuf8FpqW$5VN$wt@3Cc$pR zyfM}ggsr3gAHO(DGI{iV*9GLwo1~(6t#|AqUq)aTzY_?n-ES%@UfC2zD?!S_44rKB zD5=An5d(yxqmYfvPY6s(Li;nis$6KogJcaWJ-ZYxzr%)ymrk8>i=HDy8~gfqOhbXA z%?bpn079Vrhz`Z=CudDrc_%AD*~GjWY^y!fG33P#8!$OYA{o5on1LsHdTdtqt4Li{ zA0JQ>q8Od7&Lp!W$U548G{-fB#QtcXE%2@Fvv%-S3{Cw2-d6QHB`@jJ{Y@~%wlR^7 zl8-S*7CXPH8Z5Bn?gOTuQ7tx>)<>9$a;T=RBA)kW(^YcLkEN5=;Dr{;jSCxWrXkNH zszBDstQ2j1+cr4L@ zYn_ou$ftqUdMI3Q&KPbRgMEC@bv{4XHUSdDst(H=CzA@;TUU3RmScf{)(i4Y`OrW z-^mC>jwPbCg?e!DH3;SqHCSyYSH~~zvPW(HL;&Q=8Wfu4l5%s~T}*^aCP^oy3QT?*GT{I6f-(zi=z@#GR<9 SRlTQCgPw<-Yy2tn*Z%`CB`hBR literal 0 HcmV?d00001 diff --git a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_ABS.json b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_ABS.json new file mode 100644 index 0000000000..49e1191c75 --- /dev/null +++ b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_ABS.json @@ -0,0 +1,265 @@ +{ + "type": "filament", + "name": "SeeMeCNC ABS", + "inherits": "SeeMeCNC filament base", + "from": "System", + "filament_id": "SMCFB001", + "instantiation": "true", + "filament_settings_id": [ + "SeeMeCNC ABS" + ], + "compatible_printers": [ + "SeeMeCNC Artemis 0.4 nozzle", + "SeeMeCNC Artemis 0.5 nozzle", + "SeeMeCNC Artemis 0.7 nozzle", + "SeeMeCNC Artemis 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0505 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0510 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0521 1.0 nozzle", + "SeeMeCNC BOSSdelta 300 0.4 nozzle", + "SeeMeCNC BOSSdelta 300 0.5 nozzle", + "SeeMeCNC BOSSdelta 300 0.7 nozzle", + "SeeMeCNC BOSSdelta 300 1.0 nozzle", + "SeeMeCNC RostockMAX v3.2 0.4 nozzle", + "SeeMeCNC RostockMAX v3.2 0.5 nozzle", + "SeeMeCNC RostockMAX v3.2 0.7 nozzle", + "SeeMeCNC RostockMAX v3.2 1.0 nozzle", + "SeeMeCNC RostockMAX v4 0.4 nozzle", + "SeeMeCNC RostockMAX v4 0.5 nozzle", + "SeeMeCNC RostockMAX v4 0.7 nozzle", + "SeeMeCNC RostockMAX v4 1.0 nozzle" + ], + "compatible_printers_condition": "", + "compatible_prints": [ + "0.16mm Fine @SeeMeCNC Artemis 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4", + "0.16mm Fine @SeeMeCNC RostockMAX v4 0.4", + "0.20mm Fine @SeeMeCNC Artemis 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5", + "0.20mm Fine @SeeMeCNC RostockMAX v4 0.5", + "0.20mm Standard @SeeMeCNC Artemis 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4", + "0.20mm Standard @SeeMeCNC RostockMAX v4 0.4", + "0.24mm Draft @SeeMeCNC Artemis 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4", + "0.24mm Draft @SeeMeCNC RostockMAX v4 0.4", + "0.25mm Standard @SeeMeCNC Artemis 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5", + "0.25mm Standard @SeeMeCNC RostockMAX v4 0.5", + "0.28mm Extra Draft @SeeMeCNC Artemis 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4", + "0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4", + "0.28mm Fine @SeeMeCNC Artemis 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7", + "0.28mm Fine @SeeMeCNC RostockMAX v4 0.7", + "0.30mm Draft @SeeMeCNC Artemis 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5", + "0.30mm Draft @SeeMeCNC RostockMAX v4 0.5", + "0.35mm Extra Draft @SeeMeCNC Artemis 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5", + "0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5", + "0.35mm Standard @SeeMeCNC Artemis 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7", + "0.35mm Standard @SeeMeCNC RostockMAX v4 0.7", + "0.40mm Fine @SeeMeCNC Artemis 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0", + "0.40mm Fine @SeeMeCNC RostockMAX v4 1.0", + "0.42mm Draft @SeeMeCNC Artemis 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7", + "0.42mm Draft @SeeMeCNC RostockMAX v4 0.7", + "0.49mm Extra Draft @SeeMeCNC Artemis 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7", + "0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7", + "0.50mm Standard @SeeMeCNC Artemis 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0", + "0.50mm Standard @SeeMeCNC RostockMAX v4 1.0", + "0.60mm Draft @SeeMeCNC Artemis 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0", + "0.60mm Draft @SeeMeCNC RostockMAX v4 1.0", + "0.70mm Extra Draft @SeeMeCNC Artemis 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0", + "0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0" + ], + "compatible_prints_condition": "", + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp": [ + "100" + ], + "cool_plate_temp_initial_layer": [ + "100" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_cooling_layer_time": [ + "40" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "0" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.04" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_notes": [ + "Pressure Advance starting values by machine and nozzle size:\nArtemis / BOSSdelta 300:\n 0.4mm nozzle: 0.4000\n 0.5mm nozzle: 0.3200\n 0.7mm nozzle: 0.2286\n 1.0mm nozzle: 0.1600\n\nRostockMAX v3.2 / v4:\n 0.4mm nozzle: 0.4789\n 0.5mm nozzle: 0.3831\n 0.7mm nozzle: 0.2736\n 1.0mm nozzle: 0.1915\n\nBOSSdelta 0505:\n 0.4mm nozzle: 0.5352\n 0.5mm nozzle: 0.4282\n 0.7mm nozzle: 0.3058\n 1.0mm nozzle: 0.2141\n\nBOSSdelta 0510:\n 0.4mm nozzle: 0.7887\n 0.5mm nozzle: 0.6310\n 0.7mm nozzle: 0.4507\n 1.0mm nozzle: 0.3155\n\nBOSSdelta 0521:\n 0.4mm nozzle: 1.3239\n 0.5mm nozzle: 1.0592\n 0.7mm nozzle: 0.7565\n 1.0mm nozzle: 0.5296\n\nRun OrcaSlicer PA calibration to fine-tune for your setup.\n\nABS prints best with an enclosure to prevent warping.\nBed surface: PEI or garolite recommended.\nBed temp: 100C. Avoid drafts." + ], + "filament_type": [ + "ABS" + ], + "full_fan_speed_layer": [ + "5" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "internal_bridge_fan_speed": [ + "30" + ], + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pressure_advance": [ + "0.4" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "30" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "100" + ], + "supertack_plate_temp_initial_layer": [ + "100" + ], + "temperature_vitrification": [ + "98" + ], + "textured_cool_plate_temp": [ + "100" + ], + "textured_cool_plate_temp_initial_layer": [ + "100" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "keep_fan_always_on": [ + "0" + ] +} diff --git a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PA-CF.json b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PA-CF.json new file mode 100644 index 0000000000..aaee59be50 --- /dev/null +++ b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PA-CF.json @@ -0,0 +1,268 @@ +{ + "type": "filament", + "name": "SeeMeCNC PA-CF", + "inherits": "SeeMeCNC filament base", + "from": "System", + "filament_id": "SMCFN001", + "instantiation": "true", + "filament_settings_id": [ + "SeeMeCNC PA-CF" + ], + "compatible_printers": [ + "SeeMeCNC Artemis 0.4 nozzle", + "SeeMeCNC Artemis 0.5 nozzle", + "SeeMeCNC Artemis 0.7 nozzle", + "SeeMeCNC Artemis 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0505 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0510 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0521 1.0 nozzle", + "SeeMeCNC BOSSdelta 300 0.4 nozzle", + "SeeMeCNC BOSSdelta 300 0.5 nozzle", + "SeeMeCNC BOSSdelta 300 0.7 nozzle", + "SeeMeCNC BOSSdelta 300 1.0 nozzle", + "SeeMeCNC RostockMAX v3.2 0.4 nozzle", + "SeeMeCNC RostockMAX v3.2 0.5 nozzle", + "SeeMeCNC RostockMAX v3.2 0.7 nozzle", + "SeeMeCNC RostockMAX v3.2 1.0 nozzle", + "SeeMeCNC RostockMAX v4 0.4 nozzle", + "SeeMeCNC RostockMAX v4 0.5 nozzle", + "SeeMeCNC RostockMAX v4 0.7 nozzle", + "SeeMeCNC RostockMAX v4 1.0 nozzle" + ], + "compatible_printers_condition": "", + "compatible_prints": [ + "0.16mm Fine @SeeMeCNC Artemis 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4", + "0.16mm Fine @SeeMeCNC RostockMAX v4 0.4", + "0.20mm Fine @SeeMeCNC Artemis 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5", + "0.20mm Fine @SeeMeCNC RostockMAX v4 0.5", + "0.20mm Standard @SeeMeCNC Artemis 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4", + "0.20mm Standard @SeeMeCNC RostockMAX v4 0.4", + "0.24mm Draft @SeeMeCNC Artemis 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4", + "0.24mm Draft @SeeMeCNC RostockMAX v4 0.4", + "0.25mm Standard @SeeMeCNC Artemis 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5", + "0.25mm Standard @SeeMeCNC RostockMAX v4 0.5", + "0.28mm Extra Draft @SeeMeCNC Artemis 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4", + "0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4", + "0.28mm Fine @SeeMeCNC Artemis 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7", + "0.28mm Fine @SeeMeCNC RostockMAX v4 0.7", + "0.30mm Draft @SeeMeCNC Artemis 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5", + "0.30mm Draft @SeeMeCNC RostockMAX v4 0.5", + "0.35mm Extra Draft @SeeMeCNC Artemis 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5", + "0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5", + "0.35mm Standard @SeeMeCNC Artemis 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7", + "0.35mm Standard @SeeMeCNC RostockMAX v4 0.7", + "0.40mm Fine @SeeMeCNC Artemis 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0", + "0.40mm Fine @SeeMeCNC RostockMAX v4 1.0", + "0.42mm Draft @SeeMeCNC Artemis 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7", + "0.42mm Draft @SeeMeCNC RostockMAX v4 0.7", + "0.49mm Extra Draft @SeeMeCNC Artemis 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7", + "0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7", + "0.50mm Standard @SeeMeCNC Artemis 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0", + "0.50mm Standard @SeeMeCNC RostockMAX v4 1.0", + "0.60mm Draft @SeeMeCNC Artemis 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0", + "0.60mm Draft @SeeMeCNC RostockMAX v4 1.0", + "0.70mm Extra Draft @SeeMeCNC Artemis 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0", + "0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0" + ], + "compatible_prints_condition": "", + "close_fan_the_first_x_layers": [ + "6" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "eng_plate_temp": [ + "90" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "fan_cooling_layer_time": [ + "60" + ], + "fan_max_speed": [ + "35" + ], + "fan_min_speed": [ + "35" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.15" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_notes": [ + "Pressure Advance starting values by machine and nozzle size:\n\nArtemis / BOSSdelta 300:\n 0.4mm nozzle: 0.5500\n 0.5mm nozzle: 0.4400\n 0.7mm nozzle: 0.3143\n 1.0mm nozzle: 0.2200\n\nRostockMAX v3.2 / v4:\n 0.4mm nozzle: 0.6585\n 0.5mm nozzle: 0.5268\n 0.7mm nozzle: 0.3763\n 1.0mm nozzle: 0.2634\n\nBOSSdelta 0505:\n 0.4mm nozzle: 0.7359\n 0.5mm nozzle: 0.5887\n 0.7mm nozzle: 0.4205\n 1.0mm nozzle: 0.2944\n\nBOSSdelta 0510:\n 0.4mm nozzle: 1.0845\n 0.5mm nozzle: 0.8676\n 0.7mm nozzle: 0.6197\n 1.0mm nozzle: 0.4338\n\nBOSSdelta 0521:\n 0.4mm nozzle: 1.8204\n 0.5mm nozzle: 1.4563\n 0.7mm nozzle: 1.0402\n 1.0mm nozzle: 0.7282\n\nRun OrcaSlicer PA calibration to fine-tune for your setup." + ], + "filament_type": [ + "PA-CF" + ], + "full_fan_speed_layer": [ + "5" + ], + "hot_plate_temp": [ + "90" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "internal_bridge_fan_speed": [ + "35" + ], + "nozzle_temperature": [ + "265" + ], + "nozzle_temperature_initial_layer": [ + "265" + ], + "nozzle_temperature_range_high": [ + "285" + ], + "nozzle_temperature_range_low": [ + "255" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pressure_advance": [ + "0.55" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "0" + ], + "slow_down_layer_time": [ + "45" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "temperature_vitrification": [ + "180" + ], + "textured_cool_plate_temp": [ + "80" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "90" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "overhang_fan_speed": [ + "50" + ], + "keep_fan_always_on": [ + "0" + ] +} diff --git a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG-CF.json b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG-CF.json new file mode 100644 index 0000000000..b2822f0baf --- /dev/null +++ b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG-CF.json @@ -0,0 +1,265 @@ +{ + "type": "filament", + "name": "SeeMeCNC PETG-CF", + "inherits": "SeeMeCNC filament base", + "from": "System", + "filament_id": "SMCFG002", + "instantiation": "true", + "filament_settings_id": [ + "SeeMeCNC PETG-CF" + ], + "compatible_printers": [ + "SeeMeCNC Artemis 0.4 nozzle", + "SeeMeCNC Artemis 0.5 nozzle", + "SeeMeCNC Artemis 0.7 nozzle", + "SeeMeCNC Artemis 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0505 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0510 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0521 1.0 nozzle", + "SeeMeCNC BOSSdelta 300 0.4 nozzle", + "SeeMeCNC BOSSdelta 300 0.5 nozzle", + "SeeMeCNC BOSSdelta 300 0.7 nozzle", + "SeeMeCNC BOSSdelta 300 1.0 nozzle", + "SeeMeCNC RostockMAX v3.2 0.4 nozzle", + "SeeMeCNC RostockMAX v3.2 0.5 nozzle", + "SeeMeCNC RostockMAX v3.2 0.7 nozzle", + "SeeMeCNC RostockMAX v3.2 1.0 nozzle", + "SeeMeCNC RostockMAX v4 0.4 nozzle", + "SeeMeCNC RostockMAX v4 0.5 nozzle", + "SeeMeCNC RostockMAX v4 0.7 nozzle", + "SeeMeCNC RostockMAX v4 1.0 nozzle" + ], + "compatible_printers_condition": "", + "compatible_prints": [ + "0.16mm Fine @SeeMeCNC Artemis 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4", + "0.16mm Fine @SeeMeCNC RostockMAX v4 0.4", + "0.20mm Fine @SeeMeCNC Artemis 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5", + "0.20mm Fine @SeeMeCNC RostockMAX v4 0.5", + "0.20mm Standard @SeeMeCNC Artemis 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4", + "0.20mm Standard @SeeMeCNC RostockMAX v4 0.4", + "0.24mm Draft @SeeMeCNC Artemis 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4", + "0.24mm Draft @SeeMeCNC RostockMAX v4 0.4", + "0.25mm Standard @SeeMeCNC Artemis 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5", + "0.25mm Standard @SeeMeCNC RostockMAX v4 0.5", + "0.28mm Extra Draft @SeeMeCNC Artemis 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4", + "0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4", + "0.28mm Fine @SeeMeCNC Artemis 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7", + "0.28mm Fine @SeeMeCNC RostockMAX v4 0.7", + "0.30mm Draft @SeeMeCNC Artemis 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5", + "0.30mm Draft @SeeMeCNC RostockMAX v4 0.5", + "0.35mm Extra Draft @SeeMeCNC Artemis 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5", + "0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5", + "0.35mm Standard @SeeMeCNC Artemis 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7", + "0.35mm Standard @SeeMeCNC RostockMAX v4 0.7", + "0.40mm Fine @SeeMeCNC Artemis 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0", + "0.40mm Fine @SeeMeCNC RostockMAX v4 1.0", + "0.42mm Draft @SeeMeCNC Artemis 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7", + "0.42mm Draft @SeeMeCNC RostockMAX v4 0.7", + "0.49mm Extra Draft @SeeMeCNC Artemis 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7", + "0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7", + "0.50mm Standard @SeeMeCNC Artemis 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0", + "0.50mm Standard @SeeMeCNC RostockMAX v4 1.0", + "0.60mm Draft @SeeMeCNC Artemis 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0", + "0.60mm Draft @SeeMeCNC RostockMAX v4 1.0", + "0.70mm Extra Draft @SeeMeCNC Artemis 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0", + "0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0" + ], + "compatible_prints_condition": "", + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "60" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "35" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.32" + ], + "filament_max_volumetric_speed": [ + "7" + ], + "filament_notes": [ + "Pressure Advance starting values by machine and nozzle size:\nArtemis / BOSSdelta 300:\n 0.4mm nozzle: 0.4500\n 0.5mm nozzle: 0.3600\n 0.7mm nozzle: 0.2571\n 1.0mm nozzle: 0.1800\n\nRostockMAX v3.2 / v4:\n 0.4mm nozzle: 0.5387\n 0.5mm nozzle: 0.4310\n 0.7mm nozzle: 0.3078\n 1.0mm nozzle: 0.2155\n\nBOSSdelta 0505:\n 0.4mm nozzle: 0.6021\n 0.5mm nozzle: 0.4817\n 0.7mm nozzle: 0.3441\n 1.0mm nozzle: 0.2408\n\nBOSSdelta 0510:\n 0.4mm nozzle: 0.8873\n 0.5mm nozzle: 0.7099\n 0.7mm nozzle: 0.5070\n 1.0mm nozzle: 0.3549\n\nBOSSdelta 0521:\n 0.4mm nozzle: 1.4894\n 0.5mm nozzle: 1.1915\n 0.7mm nozzle: 0.8511\n 1.0mm nozzle: 0.5958\n\nRun OrcaSlicer PA calibration to fine-tune for your setup." + ], + "filament_type": [ + "PETG-CF" + ], + "full_fan_speed_layer": [ + "5" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "internal_bridge_fan_speed": [ + "55" + ], + "nozzle_temperature": [ + "235" + ], + "nozzle_temperature_initial_layer": [ + "235" + ], + "nozzle_temperature_range_high": [ + "255" + ], + "nozzle_temperature_range_low": [ + "225" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pressure_advance": [ + "0.45" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "45" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "70" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + "temperature_vitrification": [ + "80" + ], + "textured_cool_plate_temp": [ + "70" + ], + "textured_cool_plate_temp_initial_layer": [ + "70" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "keep_fan_always_on": [ + "0" + ] +} diff --git a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG.json b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG.json new file mode 100644 index 0000000000..a3f862eacc --- /dev/null +++ b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG.json @@ -0,0 +1,265 @@ +{ + "type": "filament", + "name": "SeeMeCNC PETG", + "inherits": "SeeMeCNC filament base", + "from": "System", + "filament_id": "SMCFG001", + "instantiation": "true", + "filament_settings_id": [ + "SeeMeCNC PETG" + ], + "compatible_printers": [ + "SeeMeCNC Artemis 0.4 nozzle", + "SeeMeCNC Artemis 0.5 nozzle", + "SeeMeCNC Artemis 0.7 nozzle", + "SeeMeCNC Artemis 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0505 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0510 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0521 1.0 nozzle", + "SeeMeCNC BOSSdelta 300 0.4 nozzle", + "SeeMeCNC BOSSdelta 300 0.5 nozzle", + "SeeMeCNC BOSSdelta 300 0.7 nozzle", + "SeeMeCNC BOSSdelta 300 1.0 nozzle", + "SeeMeCNC RostockMAX v3.2 0.4 nozzle", + "SeeMeCNC RostockMAX v3.2 0.5 nozzle", + "SeeMeCNC RostockMAX v3.2 0.7 nozzle", + "SeeMeCNC RostockMAX v3.2 1.0 nozzle", + "SeeMeCNC RostockMAX v4 0.4 nozzle", + "SeeMeCNC RostockMAX v4 0.5 nozzle", + "SeeMeCNC RostockMAX v4 0.7 nozzle", + "SeeMeCNC RostockMAX v4 1.0 nozzle" + ], + "compatible_printers_condition": "", + "compatible_prints": [ + "0.16mm Fine @SeeMeCNC Artemis 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4", + "0.16mm Fine @SeeMeCNC RostockMAX v4 0.4", + "0.20mm Fine @SeeMeCNC Artemis 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5", + "0.20mm Fine @SeeMeCNC RostockMAX v4 0.5", + "0.20mm Standard @SeeMeCNC Artemis 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4", + "0.20mm Standard @SeeMeCNC RostockMAX v4 0.4", + "0.24mm Draft @SeeMeCNC Artemis 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4", + "0.24mm Draft @SeeMeCNC RostockMAX v4 0.4", + "0.25mm Standard @SeeMeCNC Artemis 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5", + "0.25mm Standard @SeeMeCNC RostockMAX v4 0.5", + "0.28mm Extra Draft @SeeMeCNC Artemis 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4", + "0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4", + "0.28mm Fine @SeeMeCNC Artemis 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7", + "0.28mm Fine @SeeMeCNC RostockMAX v4 0.7", + "0.30mm Draft @SeeMeCNC Artemis 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5", + "0.30mm Draft @SeeMeCNC RostockMAX v4 0.5", + "0.35mm Extra Draft @SeeMeCNC Artemis 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5", + "0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5", + "0.35mm Standard @SeeMeCNC Artemis 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7", + "0.35mm Standard @SeeMeCNC RostockMAX v4 0.7", + "0.40mm Fine @SeeMeCNC Artemis 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0", + "0.40mm Fine @SeeMeCNC RostockMAX v4 1.0", + "0.42mm Draft @SeeMeCNC Artemis 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7", + "0.42mm Draft @SeeMeCNC RostockMAX v4 0.7", + "0.49mm Extra Draft @SeeMeCNC Artemis 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7", + "0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7", + "0.50mm Standard @SeeMeCNC Artemis 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0", + "0.50mm Standard @SeeMeCNC RostockMAX v4 1.0", + "0.60mm Draft @SeeMeCNC Artemis 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0", + "0.60mm Draft @SeeMeCNC RostockMAX v4 1.0", + "0.70mm Extra Draft @SeeMeCNC Artemis 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0", + "0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0" + ], + "compatible_prints_condition": "", + "close_fan_the_first_x_layers": [ + "5" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "45" + ], + "fan_max_speed": [ + "70" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.27" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_notes": [ + "Pressure Advance starting values by machine and nozzle size:\nArtemis / BOSSdelta 300:\n 0.4mm nozzle: 0.5000\n 0.5mm nozzle: 0.4000\n 0.7mm nozzle: 0.2857\n 1.0mm nozzle: 0.2000\n\nRostockMAX v3.2 / v4:\n 0.4mm nozzle: 0.5986\n 0.5mm nozzle: 0.4789\n 0.7mm nozzle: 0.3421\n 1.0mm nozzle: 0.2394\n\nBOSSdelta 0505:\n 0.4mm nozzle: 0.6690\n 0.5mm nozzle: 0.5352\n 0.7mm nozzle: 0.3823\n 1.0mm nozzle: 0.2676\n\nBOSSdelta 0510:\n 0.4mm nozzle: 0.9859\n 0.5mm nozzle: 0.7887\n 0.7mm nozzle: 0.5634\n 1.0mm nozzle: 0.3944\n\nBOSSdelta 0521:\n 0.4mm nozzle: 1.6549\n 0.5mm nozzle: 1.3239\n 0.7mm nozzle: 0.9457\n 1.0mm nozzle: 0.6620\n\nRun OrcaSlicer PA calibration to fine-tune for your setup." + ], + "filament_type": [ + "PETG" + ], + "full_fan_speed_layer": [ + "5" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "internal_bridge_fan_speed": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pressure_advance": [ + "0.5" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "30" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "70" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + "temperature_vitrification": [ + "80" + ], + "textured_cool_plate_temp": [ + "70" + ], + "textured_cool_plate_temp_initial_layer": [ + "70" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "keep_fan_always_on": [ + "1" + ] +} diff --git a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PLA.json b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PLA.json new file mode 100644 index 0000000000..88065139a5 --- /dev/null +++ b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PLA.json @@ -0,0 +1,447 @@ +{ + "type": "filament", + "name": "SeeMeCNC PLA", + "from": "System", + "filament_id": "SMCFL001", + "instantiation": "true", + "filament_settings_id": [ + "SeeMeCNC PLA" + ], + "compatible_printers": [ + "SeeMeCNC Artemis 0.4 nozzle", + "SeeMeCNC Artemis 0.5 nozzle", + "SeeMeCNC Artemis 0.7 nozzle", + "SeeMeCNC Artemis 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0505 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0510 1.0 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.4 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.5 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0521 1.0 nozzle", + "SeeMeCNC BOSSdelta 300 0.4 nozzle", + "SeeMeCNC BOSSdelta 300 0.5 nozzle", + "SeeMeCNC BOSSdelta 300 0.7 nozzle", + "SeeMeCNC BOSSdelta 300 1.0 nozzle", + "SeeMeCNC RostockMAX v3.2 0.4 nozzle", + "SeeMeCNC RostockMAX v3.2 0.5 nozzle", + "SeeMeCNC RostockMAX v3.2 0.7 nozzle", + "SeeMeCNC RostockMAX v3.2 1.0 nozzle", + "SeeMeCNC RostockMAX v4 0.4 nozzle", + "SeeMeCNC RostockMAX v4 0.5 nozzle", + "SeeMeCNC RostockMAX v4 0.7 nozzle", + "SeeMeCNC RostockMAX v4 1.0 nozzle" + ], + "compatible_printers_condition": "", + "compatible_prints": [ + "0.16mm Fine @SeeMeCNC Artemis 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4", + "0.16mm Fine @SeeMeCNC RostockMAX v4 0.4", + "0.20mm Fine @SeeMeCNC Artemis 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5", + "0.20mm Fine @SeeMeCNC RostockMAX v4 0.5", + "0.20mm Standard @SeeMeCNC Artemis 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4", + "0.20mm Standard @SeeMeCNC RostockMAX v4 0.4", + "0.24mm Draft @SeeMeCNC Artemis 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4", + "0.24mm Draft @SeeMeCNC RostockMAX v4 0.4", + "0.25mm Standard @SeeMeCNC Artemis 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5", + "0.25mm Standard @SeeMeCNC RostockMAX v4 0.5", + "0.28mm Extra Draft @SeeMeCNC Artemis 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4", + "0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4", + "0.28mm Fine @SeeMeCNC Artemis 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7", + "0.28mm Fine @SeeMeCNC RostockMAX v4 0.7", + "0.30mm Draft @SeeMeCNC Artemis 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5", + "0.30mm Draft @SeeMeCNC RostockMAX v4 0.5", + "0.35mm Extra Draft @SeeMeCNC Artemis 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5", + "0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5", + "0.35mm Standard @SeeMeCNC Artemis 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7", + "0.35mm Standard @SeeMeCNC RostockMAX v4 0.7", + "0.40mm Fine @SeeMeCNC Artemis 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0", + "0.40mm Fine @SeeMeCNC RostockMAX v4 1.0", + "0.42mm Draft @SeeMeCNC Artemis 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7", + "0.42mm Draft @SeeMeCNC RostockMAX v4 0.7", + "0.49mm Extra Draft @SeeMeCNC Artemis 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7", + "0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7", + "0.50mm Standard @SeeMeCNC Artemis 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0", + "0.50mm Standard @SeeMeCNC RostockMAX v4 1.0", + "0.60mm Draft @SeeMeCNC Artemis 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0", + "0.60mm Draft @SeeMeCNC RostockMAX v4 1.0", + "0.70mm Extra Draft @SeeMeCNC Artemis 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0", + "0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0" + ], + "compatible_prints_condition": "", + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "eng_plate_temp": [ + "55" + ], + "eng_plate_temp_initial_layer": [ + "55" + ], + "fan_cooling_layer_time": [ + "45" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.24" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_notes": [ + "Pressure Advance starting values by machine and nozzle size:\nArtemis / BOSSdelta 300:\n 0.4mm nozzle: 0.4000\n 0.5mm nozzle: 0.3200\n 0.7mm nozzle: 0.2286\n 1.0mm nozzle: 0.1600\n\nRostockMAX v3.2 / v4:\n 0.4mm nozzle: 0.4789\n 0.5mm nozzle: 0.3831\n 0.7mm nozzle: 0.2736\n 1.0mm nozzle: 0.1915\n\nBOSSdelta 0505:\n 0.4mm nozzle: 0.5352\n 0.5mm nozzle: 0.4282\n 0.7mm nozzle: 0.3058\n 1.0mm nozzle: 0.2141\n\nBOSSdelta 0510:\n 0.4mm nozzle: 0.7887\n 0.5mm nozzle: 0.6310\n 0.7mm nozzle: 0.4507\n 1.0mm nozzle: 0.3155\n\nBOSSdelta 0521:\n 0.4mm nozzle: 1.3239\n 0.5mm nozzle: 1.0592\n 0.7mm nozzle: 0.7565\n 1.0mm nozzle: 0.5296\n\nRun OrcaSlicer PA calibration to fine-tune for your setup." + ], + "filament_type": [ + "PLA" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" + ], + "internal_bridge_fan_speed": [ + "100" + ], + "nozzle_temperature": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "190" + ], + "nozzle_temperature_range_high": [ + "225" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pressure_advance": [ + "0.4" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "30" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "temperature_vitrification": [ + "60" + ], + "textured_cool_plate_temp": [ + "55" + ], + "textured_cool_plate_temp_initial_layer": [ + "55" + ], + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ], + "keep_fan_always_on": [ + "1" + ], + "shrink_ratio": [ + "1", + "1" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "default_filament_colour": [ + "" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "enable_pressure_advance": [ + "1" + ], + "filament_adaptive_volumetric_speed": [ + "0" + ], + "filament_adhesiveness_category": [ + "0" + ], + "filament_change_length": [ + "10" + ], + "filament_cooling_final_speed": [ + "0" + ], + "filament_cooling_initial_speed": [ + "0" + ], + "filament_cooling_moves": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + " " + ], + "filament_extruder_variant": [ + "Bowden Standard" + ], + "filament_flush_temp": [ + "0" + ], + "filament_flush_volumetric_speed": [ + "0" + ], + "filament_ironing_flow": [ + "nil" + ], + "filament_ironing_inset": [ + "nil" + ], + "filament_ironing_spacing": [ + "nil" + ], + "filament_ironing_speed": [ + "nil" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "20" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "10" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_printable": [ + "3" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_start_gcode": [ + " " + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_toolchange_time": "4", + "filament_tower_interface_pre_extrusion_dist": [ + "10" + ], + "filament_tower_interface_pre_extrusion_length": [ + "0" + ], + "filament_tower_interface_print_temp": [ + "-1" + ], + "filament_tower_interface_purge_volume": [ + "20" + ], + "filament_tower_ironing_area": [ + "4" + ], + "filament_unloading_speed": [ + "60" + ], + "filament_unloading_speed_start": [ + "80" + ], + "filament_vendor": [ + "SeeMeCNC" + ], + "idle_temperature": [ + "0" + ], + "ironing_fan_speed": [ + "-1" + ], + "overhang_fan_speed": [ + "100" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "required_nozzle_HRC": [ + "0" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "volumetric_speed_coefficients": [ + "" + ], + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_TPU.json b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_TPU.json new file mode 100644 index 0000000000..34327f0b91 --- /dev/null +++ b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_TPU.json @@ -0,0 +1,185 @@ +{ + "type": "filament", + "name": "SeeMeCNC TPU", + "inherits": "SeeMeCNC filament base", + "from": "System", + "filament_id": "SMCFU001", + "instantiation": "true", + "filament_settings_id": [ + "SeeMeCNC TPU" + ], + "compatible_printers": [ + "SeeMeCNC Artemis 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle", + "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle", + "SeeMeCNC BOSSdelta 300 0.7 nozzle", + "SeeMeCNC RostockMAX v3.2 0.7 nozzle", + "SeeMeCNC RostockMAX v4 0.7 nozzle" + ], + "compatible_printers_condition": "", + "compatible_prints": [ + "0.30mm TPU Solid @SeeMeCNC Artemis 0.7", + "0.30mm TPU Solid @SeeMeCNC BOSSdelta 300 0.7", + "0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.30mm TPU Solid @SeeMeCNC RostockMAX v3.2 0.7", + "0.30mm TPU Solid @SeeMeCNC RostockMAX v4 0.7", + "0.35mm TPU Vase @SeeMeCNC Artemis 0.7", + "0.35mm TPU Vase @SeeMeCNC BOSSdelta 300 0.7", + "0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0505 0.7", + "0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0510 0.7", + "0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0521 0.7", + "0.35mm TPU Vase @SeeMeCNC RostockMAX v3.2 0.7", + "0.35mm TPU Vase @SeeMeCNC RostockMAX v4 0.7" + ], + "compatible_prints_condition": "", + "close_fan_the_first_x_layers": [ + "999" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "enable_overhang_bridge_fan": [ + "0" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "35" + ], + "fan_max_speed": [ + "60" + ], + "fan_min_speed": [ + "35" + ], + "filament_cost": [ + "35" + ], + "filament_density": [ + "1.22" + ], + "filament_max_volumetric_speed": [ + "4" + ], + "filament_notes": [ + "Pressure Advance starting values by machine and nozzle size:\nArtemis / BOSSdelta 300:\n 0.7mm nozzle: 0.4571\n\nRostockMAX v3.2 / v4:\n 0.7mm nozzle: 0.5473\n\nBOSSdelta 0505:\n 0.7mm nozzle: 0.6117\n - Expect significant tuning required\n\nBOSSdelta 0510:\n Not recommended for TPU.\n\nBOSSdelta 0521:\n Not recommended for TPU.\n\nRun OrcaSlicer PA calibration to fine-tune for your setup.\n\nNote: TPU profiles are designed for 0.7mm nozzles only." + ], + "filament_type": [ + "TPU" + ], + "full_fan_speed_layer": [ + "999" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "internal_bridge_fan_speed": [ + "-1" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pressure_advance": [ + "0.8" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "0" + ], + "slow_down_layer_time": [ + "25" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "temperature_vitrification": [ + "60" + ], + "textured_cool_plate_temp": [ + "60" + ], + "textured_cool_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_retraction_length": [ + "20" + ], + "filament_retraction_speed": [ + "120" + ], + "filament_deretraction_speed": [ + "120" + ], + "filament_retraction_minimum_travel": [ + "15" + ], + "filament_retract_restart_extra": [ + "0.5" + ], + "filament_retract_before_wipe": [ + "0%" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_z_hop": [ + "0" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "filament_retract_lift_above": [ + "0" + ], + "filament_retract_lift_below": [ + "0" + ], + "filament_retract_lift_enforce": [ + "All Surfaces" + ], + "overhang_fan_speed": [ + "30" + ], + "keep_fan_always_on": [ + "0" + ] +} diff --git a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_filament_base.json b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_filament_base.json new file mode 100644 index 0000000000..bf5de9ce70 --- /dev/null +++ b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_filament_base.json @@ -0,0 +1,185 @@ +{ + "type": "filament", + "name": "SeeMeCNC filament base", + "from": "system", + "instantiation": "false", + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "default_filament_colour": [ + "" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "enable_pressure_advance": [ + "1" + ], + "filament_adaptive_volumetric_speed": [ + "0" + ], + "filament_adhesiveness_category": [ + "0" + ], + "filament_change_length": [ + "10" + ], + "filament_cooling_final_speed": [ + "0" + ], + "filament_cooling_initial_speed": [ + "0" + ], + "filament_cooling_moves": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + " " + ], + "filament_extruder_variant": [ + "Bowden Standard" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_flush_temp": [ + "0" + ], + "filament_flush_volumetric_speed": [ + "0" + ], + "filament_ironing_flow": [ + "nil" + ], + "filament_ironing_inset": [ + "nil" + ], + "filament_ironing_spacing": [ + "nil" + ], + "filament_ironing_speed": [ + "nil" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "20" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "10" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_printable": [ + "3" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_start_gcode": [ + " " + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_toolchange_time": "4", + "filament_tower_interface_pre_extrusion_dist": [ + "10" + ], + "filament_tower_interface_pre_extrusion_length": [ + "0" + ], + "filament_tower_interface_print_temp": [ + "-1" + ], + "filament_tower_interface_purge_volume": [ + "20" + ], + "filament_tower_ironing_area": [ + "4" + ], + "filament_unloading_speed": [ + "60" + ], + "filament_unloading_speed_start": [ + "80" + ], + "filament_vendor": [ + "SeeMeCNC" + ], + "idle_temperature": [ + "0" + ], + "ironing_fan_speed": [ + "-1" + ], + "overhang_fan_speed": [ + "100" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "required_nozzle_HRC": [ + "0" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "volumetric_speed_coefficients": [ + "" + ], + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC Artemis 300.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC Artemis 300.json new file mode 100644 index 0000000000..cd0ba84775 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC Artemis 300.json @@ -0,0 +1,15 @@ +{ + "type": "machine_model", + "name": "SeeMeCNC Artemis 300", + "bed_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_texture": "SeeMeCNC_Buildplate_texture.png", + "default_materials": "SeeMeCNC PLA", + "nozzle_diameter": "0.4;0.5;0.7;1.0", + "machine_tech": "FFF", + "family": "SeeMeCNC Artemis 300", + "thumbnail": "SeeMeCNC Artemis 300_cover.png", + "machine_load_filament_time": "4", + "machine_unload_filament_time": "4", + "model_id": "SEEMECNC_ARTEMIS_300", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 300.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 300.json new file mode 100644 index 0000000000..1586b6f445 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 300.json @@ -0,0 +1,15 @@ +{ + "type": "machine_model", + "name": "SeeMeCNC BOSSdelta 300", + "bed_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_texture": "SeeMeCNC_Buildplate_texture.png", + "default_materials": "SeeMeCNC PLA", + "nozzle_diameter": "0.4;0.5;0.7;1.0", + "machine_tech": "FFF", + "family": "SeeMeCNC BOSSdelta 300", + "thumbnail": "SeeMeCNC BOSSdelta 300_cover.png", + "machine_load_filament_time": "4", + "machine_unload_filament_time": "4", + "model_id": "SEEMECNC_BOSSDELTA_300", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 500 0505.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 500 0505.json new file mode 100644 index 0000000000..9a08105772 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 500 0505.json @@ -0,0 +1,15 @@ +{ + "type": "machine_model", + "name": "SeeMeCNC BOSSdelta 500 0505", + "bed_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_texture": "SeeMeCNC_Buildplate_texture.png", + "default_materials": "SeeMeCNC PLA", + "nozzle_diameter": "0.4;0.5;0.7;1.0", + "machine_tech": "FFF", + "family": "SeeMeCNC BOSSdelta 500 0505", + "thumbnail": "SeeMeCNC BOSSdelta 500 0505_cover.png", + "machine_load_filament_time": "4", + "machine_unload_filament_time": "4", + "model_id": "SEEMECNC_BOSSDELTA_500_0505", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 500 0510.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 500 0510.json new file mode 100644 index 0000000000..5ae339af38 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 500 0510.json @@ -0,0 +1,15 @@ +{ + "type": "machine_model", + "name": "SeeMeCNC BOSSdelta 500 0510", + "bed_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_texture": "SeeMeCNC_Buildplate_texture.png", + "default_materials": "SeeMeCNC PLA", + "nozzle_diameter": "0.4;0.5;0.7;1.0", + "machine_tech": "FFF", + "family": "SeeMeCNC BOSSdelta 500 0510", + "thumbnail": "SeeMeCNC BOSSdelta 500 0510_cover.png", + "machine_load_filament_time": "4", + "machine_unload_filament_time": "4", + "model_id": "SEEMECNC_BOSSDELTA_500_0510", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 500 0521.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 500 0521.json new file mode 100644 index 0000000000..1243cc47bb --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC BOSSdelta 500 0521.json @@ -0,0 +1,15 @@ +{ + "type": "machine_model", + "name": "SeeMeCNC BOSSdelta 500 0521", + "bed_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_texture": "SeeMeCNC_Buildplate_texture.png", + "default_materials": "SeeMeCNC PLA", + "nozzle_diameter": "0.4;0.5;0.7;1.0", + "machine_tech": "FFF", + "family": "SeeMeCNC BOSSdelta 500 0521", + "thumbnail": "SeeMeCNC BOSSdelta 500 0521_cover.png", + "machine_load_filament_time": "4", + "machine_unload_filament_time": "4", + "model_id": "SEEMECNC_BOSSDELTA_500_0521", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC RostockMAX v3.2.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC RostockMAX v3.2.json new file mode 100644 index 0000000000..be7fde668d --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC RostockMAX v3.2.json @@ -0,0 +1,15 @@ +{ + "type": "machine_model", + "name": "SeeMeCNC RostockMAX v3.2", + "bed_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_texture": "SeeMeCNC_Buildplate_texture.png", + "default_materials": "SeeMeCNC PLA", + "nozzle_diameter": "0.4;0.5;0.7;1.0", + "machine_tech": "FFF", + "family": "SeeMeCNC RostockMAX v3.2", + "thumbnail": "SeeMeCNC RostockMAX v3.2_cover.png", + "machine_load_filament_time": "4", + "machine_unload_filament_time": "4", + "model_id": "SEEMECNC_ROSTOCKMAX_V32", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC RostockMAX v4.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC RostockMAX v4.json new file mode 100644 index 0000000000..f5bd01a6c4 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC RostockMAX v4.json @@ -0,0 +1,15 @@ +{ + "type": "machine_model", + "name": "SeeMeCNC RostockMAX v4", + "bed_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_texture": "SeeMeCNC_Buildplate_texture.png", + "default_materials": "SeeMeCNC PLA", + "nozzle_diameter": "0.4;0.5;0.7;1.0", + "machine_tech": "FFF", + "family": "SeeMeCNC RostockMAX v4", + "thumbnail": "SeeMeCNC RostockMAX v4_cover.png", + "machine_load_filament_time": "4", + "machine_unload_filament_time": "4", + "model_id": "SEEMECNC_ROSTOCKMAX_V4", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_0_4mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_0_4mm.json new file mode 100644 index 0000000000..d09e9f376e --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_0_4mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC Artemis 0.4 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.20mm Standard @SeeMeCNC Artemis 0.4", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "500" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC ARTEMIS END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC ARTEMIS START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 290mm bed) ---\nG92 E0\nG1 X-50 Y-129.9 Z0.4 F5000 ; Move to arc start (inside 145mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-129.9 R139.2 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-119.9 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.32" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.4" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "2.5", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "145.0000x0.0000", + "144.4482x12.6376", + "142.7971x25.1790", + "140.0592x37.5288", + "136.2554x49.5929", + "131.4146x61.2796", + "125.5737x72.5000", + "118.7770x83.1686", + "111.0764x93.2042", + "102.5305x102.5305", + "93.2042x111.0764", + "83.1686x118.7770", + "72.5000x125.5737", + "61.2796x131.4146", + "49.5929x136.2554", + "37.5288x140.0592", + "25.1790x142.7971", + "12.6376x144.4482", + "0.0000x145.0000", + "-12.6376x144.4482", + "-25.1790x142.7971", + "-37.5288x140.0592", + "-49.5929x136.2554", + "-61.2796x131.4146", + "-72.5000x125.5737", + "-83.1686x118.7770", + "-93.2042x111.0764", + "-102.5305x102.5305", + "-111.0764x93.2042", + "-118.7770x83.1686", + "-125.5737x72.5000", + "-131.4146x61.2796", + "-136.2554x49.5929", + "-140.0592x37.5288", + "-142.7971x25.1790", + "-144.4482x12.6376", + "-145.0000x0.0000", + "-144.4482x-12.6376", + "-142.7971x-25.1790", + "-140.0592x-37.5288", + "-136.2554x-49.5929", + "-131.4146x-61.2796", + "-125.5737x-72.5000", + "-118.7770x-83.1686", + "-111.0764x-93.2042", + "-102.5305x-102.5305", + "-93.2042x-111.0764", + "-83.1686x-118.7770", + "-72.5000x-125.5737", + "-61.2796x-131.4146", + "-49.5929x-136.2554", + "-37.5288x-140.0592", + "-25.1790x-142.7971", + "-12.6376x-144.4482", + "-0.0000x-145.0000", + "12.6376x-144.4482", + "25.1790x-142.7971", + "37.5288x-140.0592", + "49.5929x-136.2554", + "61.2796x-131.4146", + "72.5000x-125.5737", + "83.1686x-118.7770", + "93.2042x-111.0764", + "102.5305x-102.5305", + "111.0764x-93.2042", + "118.7770x-83.1686", + "125.5737x-72.5000", + "131.4146x-61.2796", + "136.2554x-49.5929", + "140.0592x-37.5288", + "142.7971x-25.1790", + "144.4482x-12.6376" + ], + "printable_height": "500", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC Artemis 300", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC Artemis 0.4 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC Artemis 300", + "thumbnail": "SeeMeCNC Artemis 300_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_0_5mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_0_5mm.json new file mode 100644 index 0000000000..bf9e3c1e2a --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_0_5mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC Artemis 0.5 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.25mm Standard @SeeMeCNC Artemis 0.5", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "500" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC ARTEMIS END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC ARTEMIS START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 290mm bed) ---\nG92 E0\nG1 X-50 Y-129.9 Z0.4 F5000 ; Move to arc start (inside 145mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-129.9 R139.2 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-119.9 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.40" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.10" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.5" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "2.5", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "145.0000x0.0000", + "144.4482x12.6376", + "142.7971x25.1790", + "140.0592x37.5288", + "136.2554x49.5929", + "131.4146x61.2796", + "125.5737x72.5000", + "118.7770x83.1686", + "111.0764x93.2042", + "102.5305x102.5305", + "93.2042x111.0764", + "83.1686x118.7770", + "72.5000x125.5737", + "61.2796x131.4146", + "49.5929x136.2554", + "37.5288x140.0592", + "25.1790x142.7971", + "12.6376x144.4482", + "0.0000x145.0000", + "-12.6376x144.4482", + "-25.1790x142.7971", + "-37.5288x140.0592", + "-49.5929x136.2554", + "-61.2796x131.4146", + "-72.5000x125.5737", + "-83.1686x118.7770", + "-93.2042x111.0764", + "-102.5305x102.5305", + "-111.0764x93.2042", + "-118.7770x83.1686", + "-125.5737x72.5000", + "-131.4146x61.2796", + "-136.2554x49.5929", + "-140.0592x37.5288", + "-142.7971x25.1790", + "-144.4482x12.6376", + "-145.0000x0.0000", + "-144.4482x-12.6376", + "-142.7971x-25.1790", + "-140.0592x-37.5288", + "-136.2554x-49.5929", + "-131.4146x-61.2796", + "-125.5737x-72.5000", + "-118.7770x-83.1686", + "-111.0764x-93.2042", + "-102.5305x-102.5305", + "-93.2042x-111.0764", + "-83.1686x-118.7770", + "-72.5000x-125.5737", + "-61.2796x-131.4146", + "-49.5929x-136.2554", + "-37.5288x-140.0592", + "-25.1790x-142.7971", + "-12.6376x-144.4482", + "-0.0000x-145.0000", + "12.6376x-144.4482", + "25.1790x-142.7971", + "37.5288x-140.0592", + "49.5929x-136.2554", + "61.2796x-131.4146", + "72.5000x-125.5737", + "83.1686x-118.7770", + "93.2042x-111.0764", + "102.5305x-102.5305", + "111.0764x-93.2042", + "118.7770x-83.1686", + "125.5737x-72.5000", + "131.4146x-61.2796", + "136.2554x-49.5929", + "140.0592x-37.5288", + "142.7971x-25.1790", + "144.4482x-12.6376" + ], + "printable_height": "500", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC Artemis 300", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC Artemis 0.5 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.5", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC Artemis 300", + "thumbnail": "SeeMeCNC Artemis 300_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_0_7mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_0_7mm.json new file mode 100644 index 0000000000..1e189118ef --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_0_7mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC Artemis 0.7 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.35mm Standard @SeeMeCNC Artemis 0.7", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "500" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC ARTEMIS END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC ARTEMIS START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 290mm bed) ---\nG92 E0\nG1 X-50 Y-129.9 Z0.4 F5000 ; Move to arc start (inside 145mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-129.9 R139.2 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-119.9 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.56" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.15" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.7" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "2.5", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "145.0000x0.0000", + "144.4482x12.6376", + "142.7971x25.1790", + "140.0592x37.5288", + "136.2554x49.5929", + "131.4146x61.2796", + "125.5737x72.5000", + "118.7770x83.1686", + "111.0764x93.2042", + "102.5305x102.5305", + "93.2042x111.0764", + "83.1686x118.7770", + "72.5000x125.5737", + "61.2796x131.4146", + "49.5929x136.2554", + "37.5288x140.0592", + "25.1790x142.7971", + "12.6376x144.4482", + "0.0000x145.0000", + "-12.6376x144.4482", + "-25.1790x142.7971", + "-37.5288x140.0592", + "-49.5929x136.2554", + "-61.2796x131.4146", + "-72.5000x125.5737", + "-83.1686x118.7770", + "-93.2042x111.0764", + "-102.5305x102.5305", + "-111.0764x93.2042", + "-118.7770x83.1686", + "-125.5737x72.5000", + "-131.4146x61.2796", + "-136.2554x49.5929", + "-140.0592x37.5288", + "-142.7971x25.1790", + "-144.4482x12.6376", + "-145.0000x0.0000", + "-144.4482x-12.6376", + "-142.7971x-25.1790", + "-140.0592x-37.5288", + "-136.2554x-49.5929", + "-131.4146x-61.2796", + "-125.5737x-72.5000", + "-118.7770x-83.1686", + "-111.0764x-93.2042", + "-102.5305x-102.5305", + "-93.2042x-111.0764", + "-83.1686x-118.7770", + "-72.5000x-125.5737", + "-61.2796x-131.4146", + "-49.5929x-136.2554", + "-37.5288x-140.0592", + "-25.1790x-142.7971", + "-12.6376x-144.4482", + "-0.0000x-145.0000", + "12.6376x-144.4482", + "25.1790x-142.7971", + "37.5288x-140.0592", + "49.5929x-136.2554", + "61.2796x-131.4146", + "72.5000x-125.5737", + "83.1686x-118.7770", + "93.2042x-111.0764", + "102.5305x-102.5305", + "111.0764x-93.2042", + "118.7770x-83.1686", + "125.5737x-72.5000", + "131.4146x-61.2796", + "136.2554x-49.5929", + "140.0592x-37.5288", + "142.7971x-25.1790", + "144.4482x-12.6376" + ], + "printable_height": "500", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC Artemis 300", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC Artemis 0.7 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.7", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC Artemis 300", + "thumbnail": "SeeMeCNC Artemis 300_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_1_0mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_1_0mm.json new file mode 100644 index 0000000000..9deb062a37 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_Artemis_1_0mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC Artemis 1.0 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.50mm Standard @SeeMeCNC Artemis 1.0", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "500" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC ARTEMIS END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC ARTEMIS START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 290mm bed) ---\nG92 E0\nG1 X-50 Y-129.9 Z0.4 F5000 ; Move to arc start (inside 145mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-129.9 R139.2 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-119.9 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.80" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.20" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "1.0" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "2.5", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "145.0000x0.0000", + "144.4482x12.6376", + "142.7971x25.1790", + "140.0592x37.5288", + "136.2554x49.5929", + "131.4146x61.2796", + "125.5737x72.5000", + "118.7770x83.1686", + "111.0764x93.2042", + "102.5305x102.5305", + "93.2042x111.0764", + "83.1686x118.7770", + "72.5000x125.5737", + "61.2796x131.4146", + "49.5929x136.2554", + "37.5288x140.0592", + "25.1790x142.7971", + "12.6376x144.4482", + "0.0000x145.0000", + "-12.6376x144.4482", + "-25.1790x142.7971", + "-37.5288x140.0592", + "-49.5929x136.2554", + "-61.2796x131.4146", + "-72.5000x125.5737", + "-83.1686x118.7770", + "-93.2042x111.0764", + "-102.5305x102.5305", + "-111.0764x93.2042", + "-118.7770x83.1686", + "-125.5737x72.5000", + "-131.4146x61.2796", + "-136.2554x49.5929", + "-140.0592x37.5288", + "-142.7971x25.1790", + "-144.4482x12.6376", + "-145.0000x0.0000", + "-144.4482x-12.6376", + "-142.7971x-25.1790", + "-140.0592x-37.5288", + "-136.2554x-49.5929", + "-131.4146x-61.2796", + "-125.5737x-72.5000", + "-118.7770x-83.1686", + "-111.0764x-93.2042", + "-102.5305x-102.5305", + "-93.2042x-111.0764", + "-83.1686x-118.7770", + "-72.5000x-125.5737", + "-61.2796x-131.4146", + "-49.5929x-136.2554", + "-37.5288x-140.0592", + "-25.1790x-142.7971", + "-12.6376x-144.4482", + "-0.0000x-145.0000", + "12.6376x-144.4482", + "25.1790x-142.7971", + "37.5288x-140.0592", + "49.5929x-136.2554", + "61.2796x-131.4146", + "72.5000x-125.5737", + "83.1686x-118.7770", + "93.2042x-111.0764", + "102.5305x-102.5305", + "111.0764x-93.2042", + "118.7770x-83.1686", + "125.5737x-72.5000", + "131.4146x-61.2796", + "136.2554x-49.5929", + "140.0592x-37.5288", + "142.7971x-25.1790", + "144.4482x-12.6376" + ], + "printable_height": "500", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC Artemis 300", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC Artemis 1.0 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "1.0", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC Artemis 300", + "thumbnail": "SeeMeCNC Artemis 300_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_0_4mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_0_4mm.json new file mode 100644 index 0000000000..3911e1dc29 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_0_4mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 500 0505 0.4 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "260", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "580" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0505 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "150", + "150" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0505 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 500mm bed) ---\nG92 E0\nG1 X-50 Y-234.7 Z0.4 F5000 ; Move to arc start (inside 250mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-234.7 R240.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-224.7 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.32" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.4" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "260", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "250.0000x0.0000", + "249.0487x21.7889", + "246.2019x43.4120", + "241.4815x64.7048", + "234.9232x85.5050", + "226.5769x105.6546", + "216.5064x125.0000", + "204.7880x143.3941", + "191.5111x160.6969", + "176.7767x176.7767", + "160.6969x191.5111", + "143.3941x204.7880", + "125.0000x216.5064", + "105.6546x226.5769", + "85.5050x234.9232", + "64.7048x241.4815", + "43.4120x246.2019", + "21.7889x249.0487", + "0.0000x250.0000", + "-21.7889x249.0487", + "-43.4120x246.2019", + "-64.7048x241.4815", + "-85.5050x234.9232", + "-105.6546x226.5769", + "-125.0000x216.5064", + "-143.3941x204.7880", + "-160.6969x191.5111", + "-176.7767x176.7767", + "-191.5111x160.6969", + "-204.7880x143.3941", + "-216.5064x125.0000", + "-226.5769x105.6546", + "-234.9232x85.5050", + "-241.4815x64.7048", + "-246.2019x43.4120", + "-249.0487x21.7889", + "-250.0000x0.0000", + "-249.0487x-21.7889", + "-246.2019x-43.4120", + "-241.4815x-64.7048", + "-234.9232x-85.5050", + "-226.5769x-105.6546", + "-216.5064x-125.0000", + "-204.7880x-143.3941", + "-191.5111x-160.6969", + "-176.7767x-176.7767", + "-160.6969x-191.5111", + "-143.3941x-204.7880", + "-125.0000x-216.5064", + "-105.6546x-226.5769", + "-85.5050x-234.9232", + "-64.7048x-241.4815", + "-43.4120x-246.2019", + "-21.7889x-249.0487", + "-0.0000x-250.0000", + "21.7889x-249.0487", + "43.4120x-246.2019", + "64.7048x-241.4815", + "85.5050x-234.9232", + "105.6546x-226.5769", + "125.0000x-216.5064", + "143.3941x-204.7880", + "160.6969x-191.5111", + "176.7767x-176.7767", + "191.5111x-160.6969", + "204.7880x-143.3941", + "216.5064x-125.0000", + "226.5769x-105.6546", + "234.9232x-85.5050", + "241.4815x-64.7048", + "246.2019x-43.4120", + "249.0487x-21.7889" + ], + "printable_height": "500", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 500 0505", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 500 0505 0.4 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 500 0505", + "thumbnail": "SeeMeCNC BOSSdelta 500 0505_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_0_5mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_0_5mm.json new file mode 100644 index 0000000000..874cdd3b65 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_0_5mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 500 0505 0.5 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "260", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "580" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0505 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "150", + "150" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0505 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 500mm bed) ---\nG92 E0\nG1 X-50 Y-234.7 Z0.4 F5000 ; Move to arc start (inside 250mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-234.7 R240.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-224.7 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.4" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.5" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "260", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "250.0000x0.0000", + "249.0487x21.7889", + "246.2019x43.4120", + "241.4815x64.7048", + "234.9232x85.5050", + "226.5769x105.6546", + "216.5064x125.0000", + "204.7880x143.3941", + "191.5111x160.6969", + "176.7767x176.7767", + "160.6969x191.5111", + "143.3941x204.7880", + "125.0000x216.5064", + "105.6546x226.5769", + "85.5050x234.9232", + "64.7048x241.4815", + "43.4120x246.2019", + "21.7889x249.0487", + "0.0000x250.0000", + "-21.7889x249.0487", + "-43.4120x246.2019", + "-64.7048x241.4815", + "-85.5050x234.9232", + "-105.6546x226.5769", + "-125.0000x216.5064", + "-143.3941x204.7880", + "-160.6969x191.5111", + "-176.7767x176.7767", + "-191.5111x160.6969", + "-204.7880x143.3941", + "-216.5064x125.0000", + "-226.5769x105.6546", + "-234.9232x85.5050", + "-241.4815x64.7048", + "-246.2019x43.4120", + "-249.0487x21.7889", + "-250.0000x0.0000", + "-249.0487x-21.7889", + "-246.2019x-43.4120", + "-241.4815x-64.7048", + "-234.9232x-85.5050", + "-226.5769x-105.6546", + "-216.5064x-125.0000", + "-204.7880x-143.3941", + "-191.5111x-160.6969", + "-176.7767x-176.7767", + "-160.6969x-191.5111", + "-143.3941x-204.7880", + "-125.0000x-216.5064", + "-105.6546x-226.5769", + "-85.5050x-234.9232", + "-64.7048x-241.4815", + "-43.4120x-246.2019", + "-21.7889x-249.0487", + "-0.0000x-250.0000", + "21.7889x-249.0487", + "43.4120x-246.2019", + "64.7048x-241.4815", + "85.5050x-234.9232", + "105.6546x-226.5769", + "125.0000x-216.5064", + "143.3941x-204.7880", + "160.6969x-191.5111", + "176.7767x-176.7767", + "191.5111x-160.6969", + "204.7880x-143.3941", + "216.5064x-125.0000", + "226.5769x-105.6546", + "234.9232x-85.5050", + "241.4815x-64.7048", + "246.2019x-43.4120", + "249.0487x-21.7889" + ], + "printable_height": "500", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 500 0505", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 500 0505 0.5 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.5", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 500 0505", + "thumbnail": "SeeMeCNC BOSSdelta 500 0505_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_0_7mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_0_7mm.json new file mode 100644 index 0000000000..648f15efab --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_0_7mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "260", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "580" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0505 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "150", + "150" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0505 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 500mm bed) ---\nG92 E0\nG1 X-50 Y-234.7 Z0.4 F5000 ; Move to arc start (inside 250mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-234.7 R240.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-224.7 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.56" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.7" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "260", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "250.0000x0.0000", + "249.0487x21.7889", + "246.2019x43.4120", + "241.4815x64.7048", + "234.9232x85.5050", + "226.5769x105.6546", + "216.5064x125.0000", + "204.7880x143.3941", + "191.5111x160.6969", + "176.7767x176.7767", + "160.6969x191.5111", + "143.3941x204.7880", + "125.0000x216.5064", + "105.6546x226.5769", + "85.5050x234.9232", + "64.7048x241.4815", + "43.4120x246.2019", + "21.7889x249.0487", + "0.0000x250.0000", + "-21.7889x249.0487", + "-43.4120x246.2019", + "-64.7048x241.4815", + "-85.5050x234.9232", + "-105.6546x226.5769", + "-125.0000x216.5064", + "-143.3941x204.7880", + "-160.6969x191.5111", + "-176.7767x176.7767", + "-191.5111x160.6969", + "-204.7880x143.3941", + "-216.5064x125.0000", + "-226.5769x105.6546", + "-234.9232x85.5050", + "-241.4815x64.7048", + "-246.2019x43.4120", + "-249.0487x21.7889", + "-250.0000x0.0000", + "-249.0487x-21.7889", + "-246.2019x-43.4120", + "-241.4815x-64.7048", + "-234.9232x-85.5050", + "-226.5769x-105.6546", + "-216.5064x-125.0000", + "-204.7880x-143.3941", + "-191.5111x-160.6969", + "-176.7767x-176.7767", + "-160.6969x-191.5111", + "-143.3941x-204.7880", + "-125.0000x-216.5064", + "-105.6546x-226.5769", + "-85.5050x-234.9232", + "-64.7048x-241.4815", + "-43.4120x-246.2019", + "-21.7889x-249.0487", + "-0.0000x-250.0000", + "21.7889x-249.0487", + "43.4120x-246.2019", + "64.7048x-241.4815", + "85.5050x-234.9232", + "105.6546x-226.5769", + "125.0000x-216.5064", + "143.3941x-204.7880", + "160.6969x-191.5111", + "176.7767x-176.7767", + "191.5111x-160.6969", + "204.7880x-143.3941", + "216.5064x-125.0000", + "226.5769x-105.6546", + "234.9232x-85.5050", + "241.4815x-64.7048", + "246.2019x-43.4120", + "249.0487x-21.7889" + ], + "printable_height": "500", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 500 0505", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.7", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 500 0505", + "thumbnail": "SeeMeCNC BOSSdelta 500 0505_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_1_0mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_1_0mm.json new file mode 100644 index 0000000000..e1878aac4b --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0505_1_0mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 500 0505 1.0 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "260", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "580" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0505 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "150", + "150" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0505 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 500mm bed) ---\nG92 E0\nG1 X-50 Y-234.7 Z0.4 F5000 ; Move to arc start (inside 250mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-234.7 R240.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-224.7 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.8" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "1.0" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "260", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "250.0000x0.0000", + "249.0487x21.7889", + "246.2019x43.4120", + "241.4815x64.7048", + "234.9232x85.5050", + "226.5769x105.6546", + "216.5064x125.0000", + "204.7880x143.3941", + "191.5111x160.6969", + "176.7767x176.7767", + "160.6969x191.5111", + "143.3941x204.7880", + "125.0000x216.5064", + "105.6546x226.5769", + "85.5050x234.9232", + "64.7048x241.4815", + "43.4120x246.2019", + "21.7889x249.0487", + "0.0000x250.0000", + "-21.7889x249.0487", + "-43.4120x246.2019", + "-64.7048x241.4815", + "-85.5050x234.9232", + "-105.6546x226.5769", + "-125.0000x216.5064", + "-143.3941x204.7880", + "-160.6969x191.5111", + "-176.7767x176.7767", + "-191.5111x160.6969", + "-204.7880x143.3941", + "-216.5064x125.0000", + "-226.5769x105.6546", + "-234.9232x85.5050", + "-241.4815x64.7048", + "-246.2019x43.4120", + "-249.0487x21.7889", + "-250.0000x0.0000", + "-249.0487x-21.7889", + "-246.2019x-43.4120", + "-241.4815x-64.7048", + "-234.9232x-85.5050", + "-226.5769x-105.6546", + "-216.5064x-125.0000", + "-204.7880x-143.3941", + "-191.5111x-160.6969", + "-176.7767x-176.7767", + "-160.6969x-191.5111", + "-143.3941x-204.7880", + "-125.0000x-216.5064", + "-105.6546x-226.5769", + "-85.5050x-234.9232", + "-64.7048x-241.4815", + "-43.4120x-246.2019", + "-21.7889x-249.0487", + "-0.0000x-250.0000", + "21.7889x-249.0487", + "43.4120x-246.2019", + "64.7048x-241.4815", + "85.5050x-234.9232", + "105.6546x-226.5769", + "125.0000x-216.5064", + "143.3941x-204.7880", + "160.6969x-191.5111", + "176.7767x-176.7767", + "191.5111x-160.6969", + "204.7880x-143.3941", + "216.5064x-125.0000", + "226.5769x-105.6546", + "234.9232x-85.5050", + "241.4815x-64.7048", + "246.2019x-43.4120", + "249.0487x-21.7889" + ], + "printable_height": "500", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 500 0505", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 500 0505 1.0 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "1.0", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 500 0505", + "thumbnail": "SeeMeCNC BOSSdelta 500 0505_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_0_4mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_0_4mm.json new file mode 100644 index 0000000000..a161d1aece --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_0_4mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 500 0510 0.4 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "260", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "1000" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0510 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "100", + "100" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0510 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 500mm bed) ---\nG92 E0\nG1 X-50 Y-234.7 Z0.4 F5000 ; Move to arc start (inside 250mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-234.7 R240.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-224.7 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.32" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.4" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "260", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "250.0000x0.0000", + "249.0487x21.7889", + "246.2019x43.4120", + "241.4815x64.7048", + "234.9232x85.5050", + "226.5769x105.6546", + "216.5064x125.0000", + "204.7880x143.3941", + "191.5111x160.6969", + "176.7767x176.7767", + "160.6969x191.5111", + "143.3941x204.7880", + "125.0000x216.5064", + "105.6546x226.5769", + "85.5050x234.9232", + "64.7048x241.4815", + "43.4120x246.2019", + "21.7889x249.0487", + "0.0000x250.0000", + "-21.7889x249.0487", + "-43.4120x246.2019", + "-64.7048x241.4815", + "-85.5050x234.9232", + "-105.6546x226.5769", + "-125.0000x216.5064", + "-143.3941x204.7880", + "-160.6969x191.5111", + "-176.7767x176.7767", + "-191.5111x160.6969", + "-204.7880x143.3941", + "-216.5064x125.0000", + "-226.5769x105.6546", + "-234.9232x85.5050", + "-241.4815x64.7048", + "-246.2019x43.4120", + "-249.0487x21.7889", + "-250.0000x0.0000", + "-249.0487x-21.7889", + "-246.2019x-43.4120", + "-241.4815x-64.7048", + "-234.9232x-85.5050", + "-226.5769x-105.6546", + "-216.5064x-125.0000", + "-204.7880x-143.3941", + "-191.5111x-160.6969", + "-176.7767x-176.7767", + "-160.6969x-191.5111", + "-143.3941x-204.7880", + "-125.0000x-216.5064", + "-105.6546x-226.5769", + "-85.5050x-234.9232", + "-64.7048x-241.4815", + "-43.4120x-246.2019", + "-21.7889x-249.0487", + "-0.0000x-250.0000", + "21.7889x-249.0487", + "43.4120x-246.2019", + "64.7048x-241.4815", + "85.5050x-234.9232", + "105.6546x-226.5769", + "125.0000x-216.5064", + "143.3941x-204.7880", + "160.6969x-191.5111", + "176.7767x-176.7767", + "191.5111x-160.6969", + "204.7880x-143.3941", + "216.5064x-125.0000", + "226.5769x-105.6546", + "234.9232x-85.5050", + "241.4815x-64.7048", + "246.2019x-43.4120", + "249.0487x-21.7889" + ], + "printable_height": "1000", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 500 0510", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 500 0510 0.4 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 500 0510", + "thumbnail": "SeeMeCNC BOSSdelta 500 0510_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_0_5mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_0_5mm.json new file mode 100644 index 0000000000..41d6e5eeff --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_0_5mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 500 0510 0.5 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "260", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "1000" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0510 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "100", + "100" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0510 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 500mm bed) ---\nG92 E0\nG1 X-50 Y-234.7 Z0.4 F5000 ; Move to arc start (inside 250mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-234.7 R240.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-224.7 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.4" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.5" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "260", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "250.0000x0.0000", + "249.0487x21.7889", + "246.2019x43.4120", + "241.4815x64.7048", + "234.9232x85.5050", + "226.5769x105.6546", + "216.5064x125.0000", + "204.7880x143.3941", + "191.5111x160.6969", + "176.7767x176.7767", + "160.6969x191.5111", + "143.3941x204.7880", + "125.0000x216.5064", + "105.6546x226.5769", + "85.5050x234.9232", + "64.7048x241.4815", + "43.4120x246.2019", + "21.7889x249.0487", + "0.0000x250.0000", + "-21.7889x249.0487", + "-43.4120x246.2019", + "-64.7048x241.4815", + "-85.5050x234.9232", + "-105.6546x226.5769", + "-125.0000x216.5064", + "-143.3941x204.7880", + "-160.6969x191.5111", + "-176.7767x176.7767", + "-191.5111x160.6969", + "-204.7880x143.3941", + "-216.5064x125.0000", + "-226.5769x105.6546", + "-234.9232x85.5050", + "-241.4815x64.7048", + "-246.2019x43.4120", + "-249.0487x21.7889", + "-250.0000x0.0000", + "-249.0487x-21.7889", + "-246.2019x-43.4120", + "-241.4815x-64.7048", + "-234.9232x-85.5050", + "-226.5769x-105.6546", + "-216.5064x-125.0000", + "-204.7880x-143.3941", + "-191.5111x-160.6969", + "-176.7767x-176.7767", + "-160.6969x-191.5111", + "-143.3941x-204.7880", + "-125.0000x-216.5064", + "-105.6546x-226.5769", + "-85.5050x-234.9232", + "-64.7048x-241.4815", + "-43.4120x-246.2019", + "-21.7889x-249.0487", + "-0.0000x-250.0000", + "21.7889x-249.0487", + "43.4120x-246.2019", + "64.7048x-241.4815", + "85.5050x-234.9232", + "105.6546x-226.5769", + "125.0000x-216.5064", + "143.3941x-204.7880", + "160.6969x-191.5111", + "176.7767x-176.7767", + "191.5111x-160.6969", + "204.7880x-143.3941", + "216.5064x-125.0000", + "226.5769x-105.6546", + "234.9232x-85.5050", + "241.4815x-64.7048", + "246.2019x-43.4120", + "249.0487x-21.7889" + ], + "printable_height": "1000", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 500 0510", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 500 0510 0.5 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.5", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 500 0510", + "thumbnail": "SeeMeCNC BOSSdelta 500 0510_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_0_7mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_0_7mm.json new file mode 100644 index 0000000000..e7d67f4ff8 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_0_7mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "260", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "1000" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0510 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "100", + "100" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0510 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 500mm bed) ---\nG92 E0\nG1 X-50 Y-234.7 Z0.4 F5000 ; Move to arc start (inside 250mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-234.7 R240.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-224.7 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.56" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.7" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "260", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "250.0000x0.0000", + "249.0487x21.7889", + "246.2019x43.4120", + "241.4815x64.7048", + "234.9232x85.5050", + "226.5769x105.6546", + "216.5064x125.0000", + "204.7880x143.3941", + "191.5111x160.6969", + "176.7767x176.7767", + "160.6969x191.5111", + "143.3941x204.7880", + "125.0000x216.5064", + "105.6546x226.5769", + "85.5050x234.9232", + "64.7048x241.4815", + "43.4120x246.2019", + "21.7889x249.0487", + "0.0000x250.0000", + "-21.7889x249.0487", + "-43.4120x246.2019", + "-64.7048x241.4815", + "-85.5050x234.9232", + "-105.6546x226.5769", + "-125.0000x216.5064", + "-143.3941x204.7880", + "-160.6969x191.5111", + "-176.7767x176.7767", + "-191.5111x160.6969", + "-204.7880x143.3941", + "-216.5064x125.0000", + "-226.5769x105.6546", + "-234.9232x85.5050", + "-241.4815x64.7048", + "-246.2019x43.4120", + "-249.0487x21.7889", + "-250.0000x0.0000", + "-249.0487x-21.7889", + "-246.2019x-43.4120", + "-241.4815x-64.7048", + "-234.9232x-85.5050", + "-226.5769x-105.6546", + "-216.5064x-125.0000", + "-204.7880x-143.3941", + "-191.5111x-160.6969", + "-176.7767x-176.7767", + "-160.6969x-191.5111", + "-143.3941x-204.7880", + "-125.0000x-216.5064", + "-105.6546x-226.5769", + "-85.5050x-234.9232", + "-64.7048x-241.4815", + "-43.4120x-246.2019", + "-21.7889x-249.0487", + "-0.0000x-250.0000", + "21.7889x-249.0487", + "43.4120x-246.2019", + "64.7048x-241.4815", + "85.5050x-234.9232", + "105.6546x-226.5769", + "125.0000x-216.5064", + "143.3941x-204.7880", + "160.6969x-191.5111", + "176.7767x-176.7767", + "191.5111x-160.6969", + "204.7880x-143.3941", + "216.5064x-125.0000", + "226.5769x-105.6546", + "234.9232x-85.5050", + "241.4815x-64.7048", + "246.2019x-43.4120", + "249.0487x-21.7889" + ], + "printable_height": "1000", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 500 0510", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.7", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 500 0510", + "thumbnail": "SeeMeCNC BOSSdelta 500 0510_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_1_0mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_1_0mm.json new file mode 100644 index 0000000000..39e8945cb1 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0510_1_0mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 500 0510 1.0 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "260", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "1000" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0510 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "100", + "100" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0510 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 500mm bed) ---\nG92 E0\nG1 X-50 Y-234.7 Z0.4 F5000 ; Move to arc start (inside 250mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-234.7 R240.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-224.7 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.8" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "1.0" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "260", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "250.0000x0.0000", + "249.0487x21.7889", + "246.2019x43.4120", + "241.4815x64.7048", + "234.9232x85.5050", + "226.5769x105.6546", + "216.5064x125.0000", + "204.7880x143.3941", + "191.5111x160.6969", + "176.7767x176.7767", + "160.6969x191.5111", + "143.3941x204.7880", + "125.0000x216.5064", + "105.6546x226.5769", + "85.5050x234.9232", + "64.7048x241.4815", + "43.4120x246.2019", + "21.7889x249.0487", + "0.0000x250.0000", + "-21.7889x249.0487", + "-43.4120x246.2019", + "-64.7048x241.4815", + "-85.5050x234.9232", + "-105.6546x226.5769", + "-125.0000x216.5064", + "-143.3941x204.7880", + "-160.6969x191.5111", + "-176.7767x176.7767", + "-191.5111x160.6969", + "-204.7880x143.3941", + "-216.5064x125.0000", + "-226.5769x105.6546", + "-234.9232x85.5050", + "-241.4815x64.7048", + "-246.2019x43.4120", + "-249.0487x21.7889", + "-250.0000x0.0000", + "-249.0487x-21.7889", + "-246.2019x-43.4120", + "-241.4815x-64.7048", + "-234.9232x-85.5050", + "-226.5769x-105.6546", + "-216.5064x-125.0000", + "-204.7880x-143.3941", + "-191.5111x-160.6969", + "-176.7767x-176.7767", + "-160.6969x-191.5111", + "-143.3941x-204.7880", + "-125.0000x-216.5064", + "-105.6546x-226.5769", + "-85.5050x-234.9232", + "-64.7048x-241.4815", + "-43.4120x-246.2019", + "-21.7889x-249.0487", + "-0.0000x-250.0000", + "21.7889x-249.0487", + "43.4120x-246.2019", + "64.7048x-241.4815", + "85.5050x-234.9232", + "105.6546x-226.5769", + "125.0000x-216.5064", + "143.3941x-204.7880", + "160.6969x-191.5111", + "176.7767x-176.7767", + "191.5111x-160.6969", + "204.7880x-143.3941", + "216.5064x-125.0000", + "226.5769x-105.6546", + "234.9232x-85.5050", + "241.4815x-64.7048", + "246.2019x-43.4120", + "249.0487x-21.7889" + ], + "printable_height": "1000", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 500 0510", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 500 0510 1.0 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "1.0", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 500 0510", + "thumbnail": "SeeMeCNC BOSSdelta 500 0510_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_0_4mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_0_4mm.json new file mode 100644 index 0000000000..ea01fe1b58 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_0_4mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 500 0521 0.4 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "260", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "2100" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0521 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "100", + "100" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0521 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 500mm bed) ---\nG92 E0\nG1 X-50 Y-234.7 Z0.4 F5000 ; Move to arc start (inside 250mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-234.7 R240.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-224.7 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.32" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.4" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "260", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "250.0000x0.0000", + "249.0487x21.7889", + "246.2019x43.4120", + "241.4815x64.7048", + "234.9232x85.5050", + "226.5769x105.6546", + "216.5064x125.0000", + "204.7880x143.3941", + "191.5111x160.6969", + "176.7767x176.7767", + "160.6969x191.5111", + "143.3941x204.7880", + "125.0000x216.5064", + "105.6546x226.5769", + "85.5050x234.9232", + "64.7048x241.4815", + "43.4120x246.2019", + "21.7889x249.0487", + "0.0000x250.0000", + "-21.7889x249.0487", + "-43.4120x246.2019", + "-64.7048x241.4815", + "-85.5050x234.9232", + "-105.6546x226.5769", + "-125.0000x216.5064", + "-143.3941x204.7880", + "-160.6969x191.5111", + "-176.7767x176.7767", + "-191.5111x160.6969", + "-204.7880x143.3941", + "-216.5064x125.0000", + "-226.5769x105.6546", + "-234.9232x85.5050", + "-241.4815x64.7048", + "-246.2019x43.4120", + "-249.0487x21.7889", + "-250.0000x0.0000", + "-249.0487x-21.7889", + "-246.2019x-43.4120", + "-241.4815x-64.7048", + "-234.9232x-85.5050", + "-226.5769x-105.6546", + "-216.5064x-125.0000", + "-204.7880x-143.3941", + "-191.5111x-160.6969", + "-176.7767x-176.7767", + "-160.6969x-191.5111", + "-143.3941x-204.7880", + "-125.0000x-216.5064", + "-105.6546x-226.5769", + "-85.5050x-234.9232", + "-64.7048x-241.4815", + "-43.4120x-246.2019", + "-21.7889x-249.0487", + "-0.0000x-250.0000", + "21.7889x-249.0487", + "43.4120x-246.2019", + "64.7048x-241.4815", + "85.5050x-234.9232", + "105.6546x-226.5769", + "125.0000x-216.5064", + "143.3941x-204.7880", + "160.6969x-191.5111", + "176.7767x-176.7767", + "191.5111x-160.6969", + "204.7880x-143.3941", + "216.5064x-125.0000", + "226.5769x-105.6546", + "234.9232x-85.5050", + "241.4815x-64.7048", + "246.2019x-43.4120", + "249.0487x-21.7889" + ], + "printable_height": "2100", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 500 0521", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 500 0521 0.4 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "0", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 500 0521", + "thumbnail": "SeeMeCNC BOSSdelta 500 0521_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_0_5mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_0_5mm.json new file mode 100644 index 0000000000..b7ebd27e1c --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_0_5mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 500 0521 0.5 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "260", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "2100" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0521 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "100", + "100" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0521 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 500mm bed) ---\nG92 E0\nG1 X-50 Y-234.7 Z0.4 F5000 ; Move to arc start (inside 250mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-234.7 R240.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-224.7 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.4" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.5" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "260", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "250.0000x0.0000", + "249.0487x21.7889", + "246.2019x43.4120", + "241.4815x64.7048", + "234.9232x85.5050", + "226.5769x105.6546", + "216.5064x125.0000", + "204.7880x143.3941", + "191.5111x160.6969", + "176.7767x176.7767", + "160.6969x191.5111", + "143.3941x204.7880", + "125.0000x216.5064", + "105.6546x226.5769", + "85.5050x234.9232", + "64.7048x241.4815", + "43.4120x246.2019", + "21.7889x249.0487", + "0.0000x250.0000", + "-21.7889x249.0487", + "-43.4120x246.2019", + "-64.7048x241.4815", + "-85.5050x234.9232", + "-105.6546x226.5769", + "-125.0000x216.5064", + "-143.3941x204.7880", + "-160.6969x191.5111", + "-176.7767x176.7767", + "-191.5111x160.6969", + "-204.7880x143.3941", + "-216.5064x125.0000", + "-226.5769x105.6546", + "-234.9232x85.5050", + "-241.4815x64.7048", + "-246.2019x43.4120", + "-249.0487x21.7889", + "-250.0000x0.0000", + "-249.0487x-21.7889", + "-246.2019x-43.4120", + "-241.4815x-64.7048", + "-234.9232x-85.5050", + "-226.5769x-105.6546", + "-216.5064x-125.0000", + "-204.7880x-143.3941", + "-191.5111x-160.6969", + "-176.7767x-176.7767", + "-160.6969x-191.5111", + "-143.3941x-204.7880", + "-125.0000x-216.5064", + "-105.6546x-226.5769", + "-85.5050x-234.9232", + "-64.7048x-241.4815", + "-43.4120x-246.2019", + "-21.7889x-249.0487", + "-0.0000x-250.0000", + "21.7889x-249.0487", + "43.4120x-246.2019", + "64.7048x-241.4815", + "85.5050x-234.9232", + "105.6546x-226.5769", + "125.0000x-216.5064", + "143.3941x-204.7880", + "160.6969x-191.5111", + "176.7767x-176.7767", + "191.5111x-160.6969", + "204.7880x-143.3941", + "216.5064x-125.0000", + "226.5769x-105.6546", + "234.9232x-85.5050", + "241.4815x-64.7048", + "246.2019x-43.4120", + "249.0487x-21.7889" + ], + "printable_height": "2100", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 500 0521", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 500 0521 0.5 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.5", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "0", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 500 0521", + "thumbnail": "SeeMeCNC BOSSdelta 500 0521_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_0_7mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_0_7mm.json new file mode 100644 index 0000000000..bb0b909f5e --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_0_7mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "260", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "2100" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0521 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "100", + "100" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0521 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 500mm bed) ---\nG92 E0\nG1 X-50 Y-234.7 Z0.4 F5000 ; Move to arc start (inside 250mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-234.7 R240.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-224.7 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.56" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.7" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "260", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "250.0000x0.0000", + "249.0487x21.7889", + "246.2019x43.4120", + "241.4815x64.7048", + "234.9232x85.5050", + "226.5769x105.6546", + "216.5064x125.0000", + "204.7880x143.3941", + "191.5111x160.6969", + "176.7767x176.7767", + "160.6969x191.5111", + "143.3941x204.7880", + "125.0000x216.5064", + "105.6546x226.5769", + "85.5050x234.9232", + "64.7048x241.4815", + "43.4120x246.2019", + "21.7889x249.0487", + "0.0000x250.0000", + "-21.7889x249.0487", + "-43.4120x246.2019", + "-64.7048x241.4815", + "-85.5050x234.9232", + "-105.6546x226.5769", + "-125.0000x216.5064", + "-143.3941x204.7880", + "-160.6969x191.5111", + "-176.7767x176.7767", + "-191.5111x160.6969", + "-204.7880x143.3941", + "-216.5064x125.0000", + "-226.5769x105.6546", + "-234.9232x85.5050", + "-241.4815x64.7048", + "-246.2019x43.4120", + "-249.0487x21.7889", + "-250.0000x0.0000", + "-249.0487x-21.7889", + "-246.2019x-43.4120", + "-241.4815x-64.7048", + "-234.9232x-85.5050", + "-226.5769x-105.6546", + "-216.5064x-125.0000", + "-204.7880x-143.3941", + "-191.5111x-160.6969", + "-176.7767x-176.7767", + "-160.6969x-191.5111", + "-143.3941x-204.7880", + "-125.0000x-216.5064", + "-105.6546x-226.5769", + "-85.5050x-234.9232", + "-64.7048x-241.4815", + "-43.4120x-246.2019", + "-21.7889x-249.0487", + "-0.0000x-250.0000", + "21.7889x-249.0487", + "43.4120x-246.2019", + "64.7048x-241.4815", + "85.5050x-234.9232", + "105.6546x-226.5769", + "125.0000x-216.5064", + "143.3941x-204.7880", + "160.6969x-191.5111", + "176.7767x-176.7767", + "191.5111x-160.6969", + "204.7880x-143.3941", + "216.5064x-125.0000", + "226.5769x-105.6546", + "234.9232x-85.5050", + "241.4815x-64.7048", + "246.2019x-43.4120", + "249.0487x-21.7889" + ], + "printable_height": "2100", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 500 0521", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.7", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "0", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 500 0521", + "thumbnail": "SeeMeCNC BOSSdelta 500 0521_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_1_0mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_1_0mm.json new file mode 100644 index 0000000000..6c308dfc32 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta500_0521_1_0mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 500 0521 1.0 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model_500.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "260", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "2100" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0521 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "100", + "100" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 500 0521 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 500mm bed) ---\nG92 E0\nG1 X-50 Y-234.7 Z0.4 F5000 ; Move to arc start (inside 250mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-234.7 R240.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-224.7 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.8" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "1.0" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "260", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "250.0000x0.0000", + "249.0487x21.7889", + "246.2019x43.4120", + "241.4815x64.7048", + "234.9232x85.5050", + "226.5769x105.6546", + "216.5064x125.0000", + "204.7880x143.3941", + "191.5111x160.6969", + "176.7767x176.7767", + "160.6969x191.5111", + "143.3941x204.7880", + "125.0000x216.5064", + "105.6546x226.5769", + "85.5050x234.9232", + "64.7048x241.4815", + "43.4120x246.2019", + "21.7889x249.0487", + "0.0000x250.0000", + "-21.7889x249.0487", + "-43.4120x246.2019", + "-64.7048x241.4815", + "-85.5050x234.9232", + "-105.6546x226.5769", + "-125.0000x216.5064", + "-143.3941x204.7880", + "-160.6969x191.5111", + "-176.7767x176.7767", + "-191.5111x160.6969", + "-204.7880x143.3941", + "-216.5064x125.0000", + "-226.5769x105.6546", + "-234.9232x85.5050", + "-241.4815x64.7048", + "-246.2019x43.4120", + "-249.0487x21.7889", + "-250.0000x0.0000", + "-249.0487x-21.7889", + "-246.2019x-43.4120", + "-241.4815x-64.7048", + "-234.9232x-85.5050", + "-226.5769x-105.6546", + "-216.5064x-125.0000", + "-204.7880x-143.3941", + "-191.5111x-160.6969", + "-176.7767x-176.7767", + "-160.6969x-191.5111", + "-143.3941x-204.7880", + "-125.0000x-216.5064", + "-105.6546x-226.5769", + "-85.5050x-234.9232", + "-64.7048x-241.4815", + "-43.4120x-246.2019", + "-21.7889x-249.0487", + "-0.0000x-250.0000", + "21.7889x-249.0487", + "43.4120x-246.2019", + "64.7048x-241.4815", + "85.5050x-234.9232", + "105.6546x-226.5769", + "125.0000x-216.5064", + "143.3941x-204.7880", + "160.6969x-191.5111", + "176.7767x-176.7767", + "191.5111x-160.6969", + "204.7880x-143.3941", + "216.5064x-125.0000", + "226.5769x-105.6546", + "234.9232x-85.5050", + "241.4815x-64.7048", + "246.2019x-43.4120", + "249.0487x-21.7889" + ], + "printable_height": "2100", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 500 0521", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 500 0521 1.0 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "1.0", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "0", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 500 0521", + "thumbnail": "SeeMeCNC BOSSdelta 500 0521_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_0_4mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_0_4mm.json new file mode 100644 index 0000000000..8f63f8c97d --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_0_4mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 300 0.4 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "495" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 300 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 300 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 300mm bed) ---\nG92 E0\nG1 X-50 Y-135.0 Z0.4 F5000 ; Move to arc start (inside 150mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-135.0 R144.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-125.0 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.32" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.4" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "150.0000x0.0000", + "149.4292x13.0734", + "147.7212x26.0472", + "144.8889x38.8229", + "140.9539x51.3030", + "135.9462x63.3927", + "129.9038x75.0000", + "122.8728x86.0365", + "114.9067x96.4181", + "106.0660x106.0660", + "96.4181x114.9067", + "86.0365x122.8728", + "75.0000x129.9038", + "63.3927x135.9462", + "51.3030x140.9539", + "38.8229x144.8889", + "26.0472x147.7212", + "13.0734x149.4292", + "0.0000x150.0000", + "-13.0734x149.4292", + "-26.0472x147.7212", + "-38.8229x144.8889", + "-51.3030x140.9539", + "-63.3927x135.9462", + "-75.0000x129.9038", + "-86.0365x122.8728", + "-96.4181x114.9067", + "-106.0660x106.0660", + "-114.9067x96.4181", + "-122.8728x86.0365", + "-129.9038x75.0000", + "-135.9462x63.3927", + "-140.9539x51.3030", + "-144.8889x38.8229", + "-147.7212x26.0472", + "-149.4292x13.0734", + "-150.0000x0.0000", + "-149.4292x-13.0734", + "-147.7212x-26.0472", + "-144.8889x-38.8229", + "-140.9539x-51.3030", + "-135.9462x-63.3927", + "-129.9038x-75.0000", + "-122.8728x-86.0365", + "-114.9067x-96.4181", + "-106.0660x-106.0660", + "-96.4181x-114.9067", + "-86.0365x-122.8728", + "-75.0000x-129.9038", + "-63.3927x-135.9462", + "-51.3030x-140.9539", + "-38.8229x-144.8889", + "-26.0472x-147.7212", + "-13.0734x-149.4292", + "-0.0000x-150.0000", + "13.0734x-149.4292", + "26.0472x-147.7212", + "38.8229x-144.8889", + "51.3030x-140.9539", + "63.3927x-135.9462", + "75.0000x-129.9038", + "86.0365x-122.8728", + "96.4181x-114.9067", + "106.0660x-106.0660", + "114.9067x-96.4181", + "122.8728x-86.0365", + "129.9038x-75.0000", + "135.9462x-63.3927", + "140.9539x-51.3030", + "144.8889x-38.8229", + "147.7212x-26.0472", + "149.4292x-13.0734" + ], + "printable_height": "495", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 300", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 300 0.4 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 300", + "thumbnail": "SeeMeCNC BOSSdelta 300_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_0_5mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_0_5mm.json new file mode 100644 index 0000000000..2e3c6891fa --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_0_5mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 300 0.5 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "495" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 300 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 300 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 300mm bed) ---\nG92 E0\nG1 X-50 Y-135.0 Z0.4 F5000 ; Move to arc start (inside 150mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-135.0 R144.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-125.0 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.40" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.10" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.5" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "150.0000x0.0000", + "149.4292x13.0734", + "147.7212x26.0472", + "144.8889x38.8229", + "140.9539x51.3030", + "135.9462x63.3927", + "129.9038x75.0000", + "122.8728x86.0365", + "114.9067x96.4181", + "106.0660x106.0660", + "96.4181x114.9067", + "86.0365x122.8728", + "75.0000x129.9038", + "63.3927x135.9462", + "51.3030x140.9539", + "38.8229x144.8889", + "26.0472x147.7212", + "13.0734x149.4292", + "0.0000x150.0000", + "-13.0734x149.4292", + "-26.0472x147.7212", + "-38.8229x144.8889", + "-51.3030x140.9539", + "-63.3927x135.9462", + "-75.0000x129.9038", + "-86.0365x122.8728", + "-96.4181x114.9067", + "-106.0660x106.0660", + "-114.9067x96.4181", + "-122.8728x86.0365", + "-129.9038x75.0000", + "-135.9462x63.3927", + "-140.9539x51.3030", + "-144.8889x38.8229", + "-147.7212x26.0472", + "-149.4292x13.0734", + "-150.0000x0.0000", + "-149.4292x-13.0734", + "-147.7212x-26.0472", + "-144.8889x-38.8229", + "-140.9539x-51.3030", + "-135.9462x-63.3927", + "-129.9038x-75.0000", + "-122.8728x-86.0365", + "-114.9067x-96.4181", + "-106.0660x-106.0660", + "-96.4181x-114.9067", + "-86.0365x-122.8728", + "-75.0000x-129.9038", + "-63.3927x-135.9462", + "-51.3030x-140.9539", + "-38.8229x-144.8889", + "-26.0472x-147.7212", + "-13.0734x-149.4292", + "-0.0000x-150.0000", + "13.0734x-149.4292", + "26.0472x-147.7212", + "38.8229x-144.8889", + "51.3030x-140.9539", + "63.3927x-135.9462", + "75.0000x-129.9038", + "86.0365x-122.8728", + "96.4181x-114.9067", + "106.0660x-106.0660", + "114.9067x-96.4181", + "122.8728x-86.0365", + "129.9038x-75.0000", + "135.9462x-63.3927", + "140.9539x-51.3030", + "144.8889x-38.8229", + "147.7212x-26.0472", + "149.4292x-13.0734" + ], + "printable_height": "495", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 300", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 300 0.5 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.5", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 300", + "thumbnail": "SeeMeCNC BOSSdelta 300_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_0_7mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_0_7mm.json new file mode 100644 index 0000000000..ba36df00d2 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_0_7mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 300 0.7 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "495" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 300 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 300 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 300mm bed) ---\nG92 E0\nG1 X-50 Y-135.0 Z0.4 F5000 ; Move to arc start (inside 150mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-135.0 R144.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-125.0 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.56" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.15" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.7" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "150.0000x0.0000", + "149.4292x13.0734", + "147.7212x26.0472", + "144.8889x38.8229", + "140.9539x51.3030", + "135.9462x63.3927", + "129.9038x75.0000", + "122.8728x86.0365", + "114.9067x96.4181", + "106.0660x106.0660", + "96.4181x114.9067", + "86.0365x122.8728", + "75.0000x129.9038", + "63.3927x135.9462", + "51.3030x140.9539", + "38.8229x144.8889", + "26.0472x147.7212", + "13.0734x149.4292", + "0.0000x150.0000", + "-13.0734x149.4292", + "-26.0472x147.7212", + "-38.8229x144.8889", + "-51.3030x140.9539", + "-63.3927x135.9462", + "-75.0000x129.9038", + "-86.0365x122.8728", + "-96.4181x114.9067", + "-106.0660x106.0660", + "-114.9067x96.4181", + "-122.8728x86.0365", + "-129.9038x75.0000", + "-135.9462x63.3927", + "-140.9539x51.3030", + "-144.8889x38.8229", + "-147.7212x26.0472", + "-149.4292x13.0734", + "-150.0000x0.0000", + "-149.4292x-13.0734", + "-147.7212x-26.0472", + "-144.8889x-38.8229", + "-140.9539x-51.3030", + "-135.9462x-63.3927", + "-129.9038x-75.0000", + "-122.8728x-86.0365", + "-114.9067x-96.4181", + "-106.0660x-106.0660", + "-96.4181x-114.9067", + "-86.0365x-122.8728", + "-75.0000x-129.9038", + "-63.3927x-135.9462", + "-51.3030x-140.9539", + "-38.8229x-144.8889", + "-26.0472x-147.7212", + "-13.0734x-149.4292", + "-0.0000x-150.0000", + "13.0734x-149.4292", + "26.0472x-147.7212", + "38.8229x-144.8889", + "51.3030x-140.9539", + "63.3927x-135.9462", + "75.0000x-129.9038", + "86.0365x-122.8728", + "96.4181x-114.9067", + "106.0660x-106.0660", + "114.9067x-96.4181", + "122.8728x-86.0365", + "129.9038x-75.0000", + "135.9462x-63.3927", + "140.9539x-51.3030", + "144.8889x-38.8229", + "147.7212x-26.0472", + "149.4292x-13.0734" + ], + "printable_height": "495", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 300", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 300 0.7 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.7", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 300", + "thumbnail": "SeeMeCNC BOSSdelta 300_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_1_0mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_1_0mm.json new file mode 100644 index 0000000000..c9c7cfe489 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_BOSSdelta_300_1_0mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC BOSSdelta 300 1.0 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "495" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC BOSSDELTA 300 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC BOSSDELTA 300 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 300mm bed) ---\nG92 E0\nG1 X-50 Y-135.0 Z0.4 F5000 ; Move to arc start (inside 150mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-135.0 R144.0 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-125.0 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.80" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.20" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "1.0" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "150.0000x0.0000", + "149.4292x13.0734", + "147.7212x26.0472", + "144.8889x38.8229", + "140.9539x51.3030", + "135.9462x63.3927", + "129.9038x75.0000", + "122.8728x86.0365", + "114.9067x96.4181", + "106.0660x106.0660", + "96.4181x114.9067", + "86.0365x122.8728", + "75.0000x129.9038", + "63.3927x135.9462", + "51.3030x140.9539", + "38.8229x144.8889", + "26.0472x147.7212", + "13.0734x149.4292", + "0.0000x150.0000", + "-13.0734x149.4292", + "-26.0472x147.7212", + "-38.8229x144.8889", + "-51.3030x140.9539", + "-63.3927x135.9462", + "-75.0000x129.9038", + "-86.0365x122.8728", + "-96.4181x114.9067", + "-106.0660x106.0660", + "-114.9067x96.4181", + "-122.8728x86.0365", + "-129.9038x75.0000", + "-135.9462x63.3927", + "-140.9539x51.3030", + "-144.8889x38.8229", + "-147.7212x26.0472", + "-149.4292x13.0734", + "-150.0000x0.0000", + "-149.4292x-13.0734", + "-147.7212x-26.0472", + "-144.8889x-38.8229", + "-140.9539x-51.3030", + "-135.9462x-63.3927", + "-129.9038x-75.0000", + "-122.8728x-86.0365", + "-114.9067x-96.4181", + "-106.0660x-106.0660", + "-96.4181x-114.9067", + "-86.0365x-122.8728", + "-75.0000x-129.9038", + "-63.3927x-135.9462", + "-51.3030x-140.9539", + "-38.8229x-144.8889", + "-26.0472x-147.7212", + "-13.0734x-149.4292", + "-0.0000x-150.0000", + "13.0734x-149.4292", + "26.0472x-147.7212", + "38.8229x-144.8889", + "51.3030x-140.9539", + "63.3927x-135.9462", + "75.0000x-129.9038", + "86.0365x-122.8728", + "96.4181x-114.9067", + "106.0660x-106.0660", + "114.9067x-96.4181", + "122.8728x-86.0365", + "129.9038x-75.0000", + "135.9462x-63.3927", + "140.9539x-51.3030", + "144.8889x-38.8229", + "147.7212x-26.0472", + "149.4292x-13.0734" + ], + "printable_height": "495", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC BOSSdelta 300", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC BOSSdelta 300 1.0 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "1.0", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC BOSSdelta 300", + "thumbnail": "SeeMeCNC BOSSdelta 300_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_0_4mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_0_4mm.json new file mode 100644 index 0000000000..de09d587c0 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_0_4mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC RostockMAX v3.2 0.4 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "385" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V3.2 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V3.2 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 270mm bed) ---\nG92 E0\nG1 X-50 Y-119.6 Z0.4 F5000 ; Move to arc start (inside 135mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-119.6 R129.6 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-109.6 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.32" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.4" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "135.0000x0.0000", + "134.4863x11.7660", + "132.9490x23.4425", + "130.4000x34.9406", + "126.8585x46.1727", + "122.3516x57.0535", + "116.9134x67.5000", + "110.5855x77.4328", + "103.4160x86.7763", + "95.4594x95.4594", + "86.7763x103.4160", + "77.4328x110.5855", + "67.5000x116.9134", + "57.0535x122.3516", + "46.1727x126.8585", + "34.9406x130.4000", + "23.4425x132.9490", + "11.7660x134.4863", + "0.0000x135.0000", + "-11.7660x134.4863", + "-23.4425x132.9490", + "-34.9406x130.4000", + "-46.1727x126.8585", + "-57.0535x122.3516", + "-67.5000x116.9134", + "-77.4328x110.5855", + "-86.7763x103.4160", + "-95.4594x95.4594", + "-103.4160x86.7763", + "-110.5855x77.4328", + "-116.9134x67.5000", + "-122.3516x57.0535", + "-126.8585x46.1727", + "-130.4000x34.9406", + "-132.9490x23.4425", + "-134.4863x11.7660", + "-135.0000x0.0000", + "-134.4863x-11.7660", + "-132.9490x-23.4425", + "-130.4000x-34.9406", + "-126.8585x-46.1727", + "-122.3516x-57.0535", + "-116.9134x-67.5000", + "-110.5855x-77.4328", + "-103.4160x-86.7763", + "-95.4594x-95.4594", + "-86.7763x-103.4160", + "-77.4328x-110.5855", + "-67.5000x-116.9134", + "-57.0535x-122.3516", + "-46.1727x-126.8585", + "-34.9406x-130.4000", + "-23.4425x-132.9490", + "-11.7660x-134.4863", + "-0.0000x-135.0000", + "11.7660x-134.4863", + "23.4425x-132.9490", + "34.9406x-130.4000", + "46.1727x-126.8585", + "57.0535x-122.3516", + "67.5000x-116.9134", + "77.4328x-110.5855", + "86.7763x-103.4160", + "95.4594x-95.4594", + "103.4160x-86.7763", + "110.5855x-77.4328", + "116.9134x-67.5000", + "122.3516x-57.0535", + "126.8585x-46.1727", + "130.4000x-34.9406", + "132.9490x-23.4425", + "134.4863x-11.7660" + ], + "printable_height": "385", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC RostockMAX v3.2", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC RostockMAX v3.2 0.4 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC RostockMAX v3.2", + "thumbnail": "SeeMeCNC RostockMAX v3.2_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_0_5mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_0_5mm.json new file mode 100644 index 0000000000..8ee029401b --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_0_5mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC RostockMAX v3.2 0.5 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "385" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V3.2 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V3.2 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 270mm bed) ---\nG92 E0\nG1 X-50 Y-119.6 Z0.4 F5000 ; Move to arc start (inside 135mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-119.6 R129.6 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-109.6 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.4" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.5" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "135.0000x0.0000", + "134.4863x11.7660", + "132.9490x23.4425", + "130.4000x34.9406", + "126.8585x46.1727", + "122.3516x57.0535", + "116.9134x67.5000", + "110.5855x77.4328", + "103.4160x86.7763", + "95.4594x95.4594", + "86.7763x103.4160", + "77.4328x110.5855", + "67.5000x116.9134", + "57.0535x122.3516", + "46.1727x126.8585", + "34.9406x130.4000", + "23.4425x132.9490", + "11.7660x134.4863", + "0.0000x135.0000", + "-11.7660x134.4863", + "-23.4425x132.9490", + "-34.9406x130.4000", + "-46.1727x126.8585", + "-57.0535x122.3516", + "-67.5000x116.9134", + "-77.4328x110.5855", + "-86.7763x103.4160", + "-95.4594x95.4594", + "-103.4160x86.7763", + "-110.5855x77.4328", + "-116.9134x67.5000", + "-122.3516x57.0535", + "-126.8585x46.1727", + "-130.4000x34.9406", + "-132.9490x23.4425", + "-134.4863x11.7660", + "-135.0000x0.0000", + "-134.4863x-11.7660", + "-132.9490x-23.4425", + "-130.4000x-34.9406", + "-126.8585x-46.1727", + "-122.3516x-57.0535", + "-116.9134x-67.5000", + "-110.5855x-77.4328", + "-103.4160x-86.7763", + "-95.4594x-95.4594", + "-86.7763x-103.4160", + "-77.4328x-110.5855", + "-67.5000x-116.9134", + "-57.0535x-122.3516", + "-46.1727x-126.8585", + "-34.9406x-130.4000", + "-23.4425x-132.9490", + "-11.7660x-134.4863", + "-0.0000x-135.0000", + "11.7660x-134.4863", + "23.4425x-132.9490", + "34.9406x-130.4000", + "46.1727x-126.8585", + "57.0535x-122.3516", + "67.5000x-116.9134", + "77.4328x-110.5855", + "86.7763x-103.4160", + "95.4594x-95.4594", + "103.4160x-86.7763", + "110.5855x-77.4328", + "116.9134x-67.5000", + "122.3516x-57.0535", + "126.8585x-46.1727", + "130.4000x-34.9406", + "132.9490x-23.4425", + "134.4863x-11.7660" + ], + "printable_height": "385", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC RostockMAX v3.2", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC RostockMAX v3.2 0.5 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.5", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC RostockMAX v3.2", + "thumbnail": "SeeMeCNC RostockMAX v3.2_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_0_7mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_0_7mm.json new file mode 100644 index 0000000000..38114f1099 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_0_7mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC RostockMAX v3.2 0.7 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "385" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V3.2 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V3.2 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 270mm bed) ---\nG92 E0\nG1 X-50 Y-119.6 Z0.4 F5000 ; Move to arc start (inside 135mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-119.6 R129.6 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-109.6 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.56" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.7" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "135.0000x0.0000", + "134.4863x11.7660", + "132.9490x23.4425", + "130.4000x34.9406", + "126.8585x46.1727", + "122.3516x57.0535", + "116.9134x67.5000", + "110.5855x77.4328", + "103.4160x86.7763", + "95.4594x95.4594", + "86.7763x103.4160", + "77.4328x110.5855", + "67.5000x116.9134", + "57.0535x122.3516", + "46.1727x126.8585", + "34.9406x130.4000", + "23.4425x132.9490", + "11.7660x134.4863", + "0.0000x135.0000", + "-11.7660x134.4863", + "-23.4425x132.9490", + "-34.9406x130.4000", + "-46.1727x126.8585", + "-57.0535x122.3516", + "-67.5000x116.9134", + "-77.4328x110.5855", + "-86.7763x103.4160", + "-95.4594x95.4594", + "-103.4160x86.7763", + "-110.5855x77.4328", + "-116.9134x67.5000", + "-122.3516x57.0535", + "-126.8585x46.1727", + "-130.4000x34.9406", + "-132.9490x23.4425", + "-134.4863x11.7660", + "-135.0000x0.0000", + "-134.4863x-11.7660", + "-132.9490x-23.4425", + "-130.4000x-34.9406", + "-126.8585x-46.1727", + "-122.3516x-57.0535", + "-116.9134x-67.5000", + "-110.5855x-77.4328", + "-103.4160x-86.7763", + "-95.4594x-95.4594", + "-86.7763x-103.4160", + "-77.4328x-110.5855", + "-67.5000x-116.9134", + "-57.0535x-122.3516", + "-46.1727x-126.8585", + "-34.9406x-130.4000", + "-23.4425x-132.9490", + "-11.7660x-134.4863", + "-0.0000x-135.0000", + "11.7660x-134.4863", + "23.4425x-132.9490", + "34.9406x-130.4000", + "46.1727x-126.8585", + "57.0535x-122.3516", + "67.5000x-116.9134", + "77.4328x-110.5855", + "86.7763x-103.4160", + "95.4594x-95.4594", + "103.4160x-86.7763", + "110.5855x-77.4328", + "116.9134x-67.5000", + "122.3516x-57.0535", + "126.8585x-46.1727", + "130.4000x-34.9406", + "132.9490x-23.4425", + "134.4863x-11.7660" + ], + "printable_height": "385", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC RostockMAX v3.2", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC RostockMAX v3.2 0.7 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.7", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC RostockMAX v3.2", + "thumbnail": "SeeMeCNC RostockMAX v3.2_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_1_0mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_1_0mm.json new file mode 100644 index 0000000000..31ec6793e2 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v3.2_1_0mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC RostockMAX v3.2 1.0 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "385" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V3.2 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V3.2 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 270mm bed) ---\nG92 E0\nG1 X-50 Y-119.6 Z0.4 F5000 ; Move to arc start (inside 135mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-119.6 R129.6 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-109.6 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.8" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "1.0" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "135.0000x0.0000", + "134.4863x11.7660", + "132.9490x23.4425", + "130.4000x34.9406", + "126.8585x46.1727", + "122.3516x57.0535", + "116.9134x67.5000", + "110.5855x77.4328", + "103.4160x86.7763", + "95.4594x95.4594", + "86.7763x103.4160", + "77.4328x110.5855", + "67.5000x116.9134", + "57.0535x122.3516", + "46.1727x126.8585", + "34.9406x130.4000", + "23.4425x132.9490", + "11.7660x134.4863", + "0.0000x135.0000", + "-11.7660x134.4863", + "-23.4425x132.9490", + "-34.9406x130.4000", + "-46.1727x126.8585", + "-57.0535x122.3516", + "-67.5000x116.9134", + "-77.4328x110.5855", + "-86.7763x103.4160", + "-95.4594x95.4594", + "-103.4160x86.7763", + "-110.5855x77.4328", + "-116.9134x67.5000", + "-122.3516x57.0535", + "-126.8585x46.1727", + "-130.4000x34.9406", + "-132.9490x23.4425", + "-134.4863x11.7660", + "-135.0000x0.0000", + "-134.4863x-11.7660", + "-132.9490x-23.4425", + "-130.4000x-34.9406", + "-126.8585x-46.1727", + "-122.3516x-57.0535", + "-116.9134x-67.5000", + "-110.5855x-77.4328", + "-103.4160x-86.7763", + "-95.4594x-95.4594", + "-86.7763x-103.4160", + "-77.4328x-110.5855", + "-67.5000x-116.9134", + "-57.0535x-122.3516", + "-46.1727x-126.8585", + "-34.9406x-130.4000", + "-23.4425x-132.9490", + "-11.7660x-134.4863", + "-0.0000x-135.0000", + "11.7660x-134.4863", + "23.4425x-132.9490", + "34.9406x-130.4000", + "46.1727x-126.8585", + "57.0535x-122.3516", + "67.5000x-116.9134", + "77.4328x-110.5855", + "86.7763x-103.4160", + "95.4594x-95.4594", + "103.4160x-86.7763", + "110.5855x-77.4328", + "116.9134x-67.5000", + "122.3516x-57.0535", + "126.8585x-46.1727", + "130.4000x-34.9406", + "132.9490x-23.4425", + "134.4863x-11.7660" + ], + "printable_height": "385", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC RostockMAX v3.2", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC RostockMAX v3.2 1.0 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "1.0", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC RostockMAX v3.2", + "thumbnail": "SeeMeCNC RostockMAX v3.2_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_0_4mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_0_4mm.json new file mode 100644 index 0000000000..18017a7ecf --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_0_4mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC RostockMAX v4 0.4 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.20mm Standard @SeeMeCNC RostockMAX v4 0.4", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "385" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V4 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V4 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 280mm bed) ---\nG92 E0\nG1 X-50 Y-124.8 Z0.4 F5000 ; Move to arc start (inside 140mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-124.8 R134.4 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-114.8 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.32" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.4" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "140.0000x0.0000", + "139.4673x12.2018", + "137.8731x24.3107", + "135.2296x36.2347", + "131.5570x47.8828", + "126.8831x59.1666", + "121.2436x70.0000", + "114.6813x80.3007", + "107.2462x89.9903", + "98.9949x98.9949", + "89.9903x107.2462", + "80.3007x114.6813", + "70.0000x121.2436", + "59.1666x126.8831", + "47.8828x131.5570", + "36.2347x135.2296", + "24.3107x137.8731", + "12.2018x139.4673", + "0.0000x140.0000", + "-12.2018x139.4673", + "-24.3107x137.8731", + "-36.2347x135.2296", + "-47.8828x131.5570", + "-59.1666x126.8831", + "-70.0000x121.2436", + "-80.3007x114.6813", + "-89.9903x107.2462", + "-98.9949x98.9949", + "-107.2462x89.9903", + "-114.6813x80.3007", + "-121.2436x70.0000", + "-126.8831x59.1666", + "-131.5570x47.8828", + "-135.2296x36.2347", + "-137.8731x24.3107", + "-139.4673x12.2018", + "-140.0000x0.0000", + "-139.4673x-12.2018", + "-137.8731x-24.3107", + "-135.2296x-36.2347", + "-131.5570x-47.8828", + "-126.8831x-59.1666", + "-121.2436x-70.0000", + "-114.6813x-80.3007", + "-107.2462x-89.9903", + "-98.9949x-98.9949", + "-89.9903x-107.2462", + "-80.3007x-114.6813", + "-70.0000x-121.2436", + "-59.1666x-126.8831", + "-47.8828x-131.5570", + "-36.2347x-135.2296", + "-24.3107x-137.8731", + "-12.2018x-139.4673", + "-0.0000x-140.0000", + "12.2018x-139.4673", + "24.3107x-137.8731", + "36.2347x-135.2296", + "47.8828x-131.5570", + "59.1666x-126.8831", + "70.0000x-121.2436", + "80.3007x-114.6813", + "89.9903x-107.2462", + "98.9949x-98.9949", + "107.2462x-89.9903", + "114.6813x-80.3007", + "121.2436x-70.0000", + "126.8831x-59.1666", + "131.5570x-47.8828", + "135.2296x-36.2347", + "137.8731x-24.3107", + "139.4673x-12.2018" + ], + "printable_height": "385", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC RostockMAX v4", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC RostockMAX v4 0.4 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC RostockMAX v4", + "thumbnail": "SeeMeCNC RostockMAX v4_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_0_5mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_0_5mm.json new file mode 100644 index 0000000000..413cce5b8e --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_0_5mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC RostockMAX v4 0.5 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.25mm Standard @SeeMeCNC RostockMAX v4 0.5", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "385" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V4 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V4 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 280mm bed) ---\nG92 E0\nG1 X-50 Y-124.8 Z0.4 F5000 ; Move to arc start (inside 140mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-124.8 R134.4 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-114.8 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.40" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.10" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.5" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "140.0000x0.0000", + "139.4673x12.2018", + "137.8731x24.3107", + "135.2296x36.2347", + "131.5570x47.8828", + "126.8831x59.1666", + "121.2436x70.0000", + "114.6813x80.3007", + "107.2462x89.9903", + "98.9949x98.9949", + "89.9903x107.2462", + "80.3007x114.6813", + "70.0000x121.2436", + "59.1666x126.8831", + "47.8828x131.5570", + "36.2347x135.2296", + "24.3107x137.8731", + "12.2018x139.4673", + "0.0000x140.0000", + "-12.2018x139.4673", + "-24.3107x137.8731", + "-36.2347x135.2296", + "-47.8828x131.5570", + "-59.1666x126.8831", + "-70.0000x121.2436", + "-80.3007x114.6813", + "-89.9903x107.2462", + "-98.9949x98.9949", + "-107.2462x89.9903", + "-114.6813x80.3007", + "-121.2436x70.0000", + "-126.8831x59.1666", + "-131.5570x47.8828", + "-135.2296x36.2347", + "-137.8731x24.3107", + "-139.4673x12.2018", + "-140.0000x0.0000", + "-139.4673x-12.2018", + "-137.8731x-24.3107", + "-135.2296x-36.2347", + "-131.5570x-47.8828", + "-126.8831x-59.1666", + "-121.2436x-70.0000", + "-114.6813x-80.3007", + "-107.2462x-89.9903", + "-98.9949x-98.9949", + "-89.9903x-107.2462", + "-80.3007x-114.6813", + "-70.0000x-121.2436", + "-59.1666x-126.8831", + "-47.8828x-131.5570", + "-36.2347x-135.2296", + "-24.3107x-137.8731", + "-12.2018x-139.4673", + "-0.0000x-140.0000", + "12.2018x-139.4673", + "24.3107x-137.8731", + "36.2347x-135.2296", + "47.8828x-131.5570", + "59.1666x-126.8831", + "70.0000x-121.2436", + "80.3007x-114.6813", + "89.9903x-107.2462", + "98.9949x-98.9949", + "107.2462x-89.9903", + "114.6813x-80.3007", + "121.2436x-70.0000", + "126.8831x-59.1666", + "131.5570x-47.8828", + "135.2296x-36.2347", + "137.8731x-24.3107", + "139.4673x-12.2018" + ], + "printable_height": "385", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC RostockMAX v4", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC RostockMAX v4 0.5 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.5", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC RostockMAX v4", + "thumbnail": "SeeMeCNC RostockMAX v4_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_0_7mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_0_7mm.json new file mode 100644 index 0000000000..9cf89c9270 --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_0_7mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC RostockMAX v4 0.7 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.35mm Standard @SeeMeCNC RostockMAX v4 0.7", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "385" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V4 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V4 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 280mm bed) ---\nG92 E0\nG1 X-50 Y-124.8 Z0.4 F5000 ; Move to arc start (inside 140mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-124.8 R134.4 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-114.8 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.56" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.15" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "0.7" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "140.0000x0.0000", + "139.4673x12.2018", + "137.8731x24.3107", + "135.2296x36.2347", + "131.5570x47.8828", + "126.8831x59.1666", + "121.2436x70.0000", + "114.6813x80.3007", + "107.2462x89.9903", + "98.9949x98.9949", + "89.9903x107.2462", + "80.3007x114.6813", + "70.0000x121.2436", + "59.1666x126.8831", + "47.8828x131.5570", + "36.2347x135.2296", + "24.3107x137.8731", + "12.2018x139.4673", + "0.0000x140.0000", + "-12.2018x139.4673", + "-24.3107x137.8731", + "-36.2347x135.2296", + "-47.8828x131.5570", + "-59.1666x126.8831", + "-70.0000x121.2436", + "-80.3007x114.6813", + "-89.9903x107.2462", + "-98.9949x98.9949", + "-107.2462x89.9903", + "-114.6813x80.3007", + "-121.2436x70.0000", + "-126.8831x59.1666", + "-131.5570x47.8828", + "-135.2296x36.2347", + "-137.8731x24.3107", + "-139.4673x12.2018", + "-140.0000x0.0000", + "-139.4673x-12.2018", + "-137.8731x-24.3107", + "-135.2296x-36.2347", + "-131.5570x-47.8828", + "-126.8831x-59.1666", + "-121.2436x-70.0000", + "-114.6813x-80.3007", + "-107.2462x-89.9903", + "-98.9949x-98.9949", + "-89.9903x-107.2462", + "-80.3007x-114.6813", + "-70.0000x-121.2436", + "-59.1666x-126.8831", + "-47.8828x-131.5570", + "-36.2347x-135.2296", + "-24.3107x-137.8731", + "-12.2018x-139.4673", + "-0.0000x-140.0000", + "12.2018x-139.4673", + "24.3107x-137.8731", + "36.2347x-135.2296", + "47.8828x-131.5570", + "59.1666x-126.8831", + "70.0000x-121.2436", + "80.3007x-114.6813", + "89.9903x-107.2462", + "98.9949x-98.9949", + "107.2462x-89.9903", + "114.6813x-80.3007", + "121.2436x-70.0000", + "126.8831x-59.1666", + "131.5570x-47.8828", + "135.2296x-36.2347", + "137.8731x-24.3107", + "139.4673x-12.2018" + ], + "printable_height": "385", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC RostockMAX v4", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC RostockMAX v4 0.7 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "0.7", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC RostockMAX v4", + "thumbnail": "SeeMeCNC RostockMAX v4_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_1_0mm.json b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_1_0mm.json new file mode 100644 index 0000000000..69316f794c --- /dev/null +++ b/resources/profiles/SeeMeCNC/machine/SeeMeCNC_RostockMAX_v4_1_0mm.json @@ -0,0 +1,351 @@ +{ + "type": "machine", + "name": "SeeMeCNC RostockMAX v4 1.0 nozzle", + "from": "System", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_custom_model": "SeeMeCNC_Buildplate_Model.STL", + "bed_custom_texture": "SeeMeCNC_Buildplate_texture.png", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_first_filament", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num == 1}M104 S[nozzle_temperature] ; Step down from first layer temp to print temp{endif}\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "{if layer_num >= 0}\nG92 E0\nG1 E-5 F3000\nG1 E-155 F5000\nT[next_extruder]\n{if layer_num == 0}\nM109 S[first_layer_temperature]\n{else}\nM109 S[nozzle_temperature]\n{endif}\nG1 E160 F5000\nG92 E0\n{endif}", + "cooling_tube_length": "5", + "cooling_tube_retraction": "160", + "default_filament_profile": [ + "SeeMeCNC PLA" + ], + "default_nozzle_volume_type": [ + "Standard" + ], + "default_print_profile": "0.50mm Standard @SeeMeCNC RostockMAX v4 1.0", + "deretraction_speed": [ + "60" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "enable_power_loss_recovery": "printer_configuration", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "70", + "extruder_clearance_height_to_rod": "70", + "extruder_clearance_radius": "75", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_printable_area": [], + "extruder_printable_height": [ + "385" + ], + "extruder_type": [ + "Bowden" + ], + "extruder_variant_list": [ + "Bowden Standard" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "file_start_gcode": "", + "gcode_flavor": "reprapfirmware", + "grab_length": [ + "0" + ], + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "duet", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V4 END G-CODE =======\nM104 S0 ; Turn off hotend\nM140 S0 ; Turn off heated bed\nM107 T0 ; Turn off part cooling fan\nG91 ; Relative positioning\nG1 Z2 E-160 F6000 ; Lift 2mm and retract 160mm\nG92 E0\nG90 ; Absolute positioning\nM203 Z18000 ; Allow fast Z for homing\nG28 ; Home all axes - clears part immediately on a delta\n;======= END G-CODE =======" + ], + "machine_load_filament_time": "4", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "5000", + "5000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_acceleration_x": [ + "5000", + "5000" + ], + "machine_max_acceleration_y": [ + "5000", + "5000" + ], + "machine_max_acceleration_z": [ + "5000", + "5000" + ], + "machine_max_jerk_e": [ + "15", + "15" + ], + "machine_max_jerk_x": [ + "15", + "15" + ], + "machine_max_jerk_y": [ + "15", + "15" + ], + "machine_max_jerk_z": [ + "15", + "15" + ], + "machine_max_junction_deviation": [ + "0.01" + ], + "machine_max_speed_e": [ + "150", + "25" + ], + "machine_max_speed_x": [ + "300", + "300" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "200", + "200" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": [ + ";======= SEEMECNC ROSTOCKMAX V4 START G-CODE =======\nG21 ; Set units to mm\nG90 ; Absolute positioning\nM82 ; Extruder to absolute mode\nG28 ; Home all axes\nG1 Z50 F9000 ; Lift nozzle for safe heating\n; --- SELECT STARTING TOOL ---\nT[initial_tool] ; Activate the first assigned filament in OrcaSlicer\n; --- PREHEAT ---\nM140 S[first_layer_bed_temperature] ; Start bed heating\nM104 S[first_layer_temperature] ; Start nozzle heating\nM190 S[first_layer_bed_temperature] ; Wait for bed to reach temp\nM109 S[first_layer_temperature] ; Wait for nozzle to reach temp\n; --- RE-PRIME BOWDEN TUBE ---\nG92 E0\nG1 E160.5 F3000 ; Retract 160mm\nG92 E0\n; --- PURGE LINE (curved arc near front edge, 280mm bed) ---\nG92 E0\nG1 X-50 Y-124.8 Z0.4 F5000 ; Move to arc start (inside 140mm radius)\nG1 Z0.3 F1000 ; Drop to prime height\nG3 X50 Y-124.8 R134.4 E40 F600 ; Arc purge, 100mm sweep, heavy extrusion\nG1 E38 F4500 ; Retract 2mm before wipe (Bowden)\nG1 X65 Y-114.8 Z0.2 F6000 ; Wipe move at Z0.2\nG92 E0 ; Zero extruder before print\n;======= END START G-CODE =======" + ], + "machine_tool_change_time": "0", + "machine_unload_filament_time": "4", + "manual_filament_change": "0", + "master_extruder_id": "1", + "max_layer_height": [ + "0.80" + ], + "max_resonance_avoidance_speed": "100", + "min_layer_height": [ + "0.20" + ], + "min_resonance_avoidance_speed": "50", + "nozzle_diameter": [ + "1.0" + ], + "nozzle_flush_dataset": [ + "0" + ], + "nozzle_height": "3.0", + "nozzle_hrc": "0", + "nozzle_type": [ + "brass" + ], + "nozzle_volume": [ + "0" + ], + "parking_pos_retraction": "160", + "pellet_modded_printer": "0", + "physical_extruder_map": [ + "0" + ], + "preferred_orientation": "0", + "printable_area": [ + "140.0000x0.0000", + "139.4673x12.2018", + "137.8731x24.3107", + "135.2296x36.2347", + "131.5570x47.8828", + "126.8831x59.1666", + "121.2436x70.0000", + "114.6813x80.3007", + "107.2462x89.9903", + "98.9949x98.9949", + "89.9903x107.2462", + "80.3007x114.6813", + "70.0000x121.2436", + "59.1666x126.8831", + "47.8828x131.5570", + "36.2347x135.2296", + "24.3107x137.8731", + "12.2018x139.4673", + "0.0000x140.0000", + "-12.2018x139.4673", + "-24.3107x137.8731", + "-36.2347x135.2296", + "-47.8828x131.5570", + "-59.1666x126.8831", + "-70.0000x121.2436", + "-80.3007x114.6813", + "-89.9903x107.2462", + "-98.9949x98.9949", + "-107.2462x89.9903", + "-114.6813x80.3007", + "-121.2436x70.0000", + "-126.8831x59.1666", + "-131.5570x47.8828", + "-135.2296x36.2347", + "-137.8731x24.3107", + "-139.4673x12.2018", + "-140.0000x0.0000", + "-139.4673x-12.2018", + "-137.8731x-24.3107", + "-135.2296x-36.2347", + "-131.5570x-47.8828", + "-126.8831x-59.1666", + "-121.2436x-70.0000", + "-114.6813x-80.3007", + "-107.2462x-89.9903", + "-98.9949x-98.9949", + "-89.9903x-107.2462", + "-80.3007x-114.6813", + "-70.0000x-121.2436", + "-59.1666x-126.8831", + "-47.8828x-131.5570", + "-36.2347x-135.2296", + "-24.3107x-137.8731", + "-12.2018x-139.4673", + "-0.0000x-140.0000", + "12.2018x-139.4673", + "24.3107x-137.8731", + "36.2347x-135.2296", + "47.8828x-131.5570", + "59.1666x-126.8831", + "70.0000x-121.2436", + "80.3007x-114.6813", + "89.9903x-107.2462", + "98.9949x-98.9949", + "107.2462x-89.9903", + "114.6813x-80.3007", + "121.2436x-70.0000", + "126.8831x-59.1666", + "131.5570x-47.8828", + "135.2296x-36.2347", + "137.8731x-24.3107", + "139.4673x-12.2018" + ], + "printable_height": "385", + "printer_agent": "", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Bowden Standard" + ], + "printer_model": "SeeMeCNC RostockMAX v4", + "printer_notes": "", + "printer_settings_id": "SeeMeCNC RostockMAX v4 1.0 nozzle", + "printer_structure": "delta", + "printer_technology": "FFF", + "printer_variant": "1.0", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "0", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "3" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "2" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "6" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "60" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "0", + "support_object_skip_flush": "0", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "wipe_tower_type": "type2", + "wrapping_detection_gcode": "", + "wrapping_detection_layers": "20", + "wrapping_exclude_area": [], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0", + "model": "SeeMeCNC RostockMAX v4", + "thumbnail": "SeeMeCNC RostockMAX v4_cover.png", + "description": "SeeMeCNC configurations" +} diff --git a/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC Artemis 0.4.json b/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC Artemis 0.4.json new file mode 100644 index 0000000000..378dfb4156 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC Artemis 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.16mm Fine @SeeMeCNC Artemis 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.16mm Fine @SeeMeCNC Artemis 0.4", + "compatible_printers": [ + "SeeMeCNC Artemis 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.16", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4.json b/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4.json new file mode 100644 index 0000000000..1ca1eb7ddf --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.16", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4.json b/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4.json new file mode 100644 index 0000000000..06da9f7edd --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.16", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4.json b/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4.json new file mode 100644 index 0000000000..304f3ac56a --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.16", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4.json b/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4.json new file mode 100644 index 0000000000..44449b9c29 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.16", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4.json b/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4.json new file mode 100644 index 0000000000..5f4d7c4391 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.16", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC RostockMAX v4 0.4.json b/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC RostockMAX v4 0.4.json new file mode 100644 index 0000000000..391f49e552 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.16mm Fine @SeeMeCNC RostockMAX v4 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.16mm Fine @SeeMeCNC RostockMAX v4 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.16mm Fine @SeeMeCNC RostockMAX v4 0.4", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.16", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Draft @SeeMeCNC RostockMAX v3.2 0.4.json b/resources/profiles/SeeMeCNC/process/0.20mm Draft @SeeMeCNC RostockMAX v3.2 0.4.json new file mode 100644 index 0000000000..c0f111db6e --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Draft @SeeMeCNC RostockMAX v3.2 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Draft @SeeMeCNC RostockMAX v3.2 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Draft @SeeMeCNC RostockMAX v3.2 0.4", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC Artemis 0.5.json b/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC Artemis 0.5.json new file mode 100644 index 0000000000..a3f564d43c --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC Artemis 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Fine @SeeMeCNC Artemis 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Fine @SeeMeCNC Artemis 0.5", + "compatible_printers": [ + "SeeMeCNC Artemis 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5.json b/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5.json new file mode 100644 index 0000000000..b93716667e --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5.json b/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5.json new file mode 100644 index 0000000000..ea1e85ed85 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5.json b/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5.json new file mode 100644 index 0000000000..4083a4d82a --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5.json b/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5.json new file mode 100644 index 0000000000..89f80c7629 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5.json b/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5.json new file mode 100644 index 0000000000..a4317bea61 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC RostockMAX v4 0.5.json b/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC RostockMAX v4 0.5.json new file mode 100644 index 0000000000..08468cb923 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Fine @SeeMeCNC RostockMAX v4 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Fine @SeeMeCNC RostockMAX v4 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Fine @SeeMeCNC RostockMAX v4 0.5", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC Artemis 0.4.json b/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC Artemis 0.4.json new file mode 100644 index 0000000000..031733d390 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC Artemis 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Standard @SeeMeCNC Artemis 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Standard @SeeMeCNC Artemis 0.4", + "compatible_printers": [ + "SeeMeCNC Artemis 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4.json b/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4.json new file mode 100644 index 0000000000..741776c8c7 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4.json b/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4.json new file mode 100644 index 0000000000..48c4ca98b3 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4.json b/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4.json new file mode 100644 index 0000000000..cf6e7a5ad0 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4.json b/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4.json new file mode 100644 index 0000000000..1c99ac7b4f --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4.json b/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4.json new file mode 100644 index 0000000000..0eb2423048 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC RostockMAX v4 0.4.json b/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC RostockMAX v4 0.4.json new file mode 100644 index 0000000000..3b829e46d6 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.20mm Standard @SeeMeCNC RostockMAX v4 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.20mm Standard @SeeMeCNC RostockMAX v4 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.20mm Standard @SeeMeCNC RostockMAX v4 0.4", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.2", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC Artemis 0.4.json b/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC Artemis 0.4.json new file mode 100644 index 0000000000..a1eeadf8c1 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC Artemis 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.24mm Draft @SeeMeCNC Artemis 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.24mm Draft @SeeMeCNC Artemis 0.4", + "compatible_printers": [ + "SeeMeCNC Artemis 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.24", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4.json b/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4.json new file mode 100644 index 0000000000..a8b05dfa20 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.24", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4.json b/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4.json new file mode 100644 index 0000000000..7c571ed487 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.24", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4.json b/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4.json new file mode 100644 index 0000000000..1f2fbdbecb --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.24", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4.json b/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4.json new file mode 100644 index 0000000000..d476011b5e --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.24", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4.json b/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4.json new file mode 100644 index 0000000000..d1b9e76880 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.24", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC RostockMAX v4 0.4.json b/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC RostockMAX v4 0.4.json new file mode 100644 index 0000000000..f47222828c --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.24mm Draft @SeeMeCNC RostockMAX v4 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.24mm Draft @SeeMeCNC RostockMAX v4 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.24mm Draft @SeeMeCNC RostockMAX v4 0.4", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.24", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC Artemis 0.5.json b/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC Artemis 0.5.json new file mode 100644 index 0000000000..3700a954c8 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC Artemis 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.25mm Standard @SeeMeCNC Artemis 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.25mm Standard @SeeMeCNC Artemis 0.5", + "compatible_printers": [ + "SeeMeCNC Artemis 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.25", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5.json b/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5.json new file mode 100644 index 0000000000..3d1d4258dc --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.25", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5.json b/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5.json new file mode 100644 index 0000000000..aa5189c4f5 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.25", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5.json b/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5.json new file mode 100644 index 0000000000..ff1b0bbfd4 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.25", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5.json b/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5.json new file mode 100644 index 0000000000..36c391d977 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.25", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5.json b/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5.json new file mode 100644 index 0000000000..9205dff278 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.25", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC RostockMAX v4 0.5.json b/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC RostockMAX v4 0.5.json new file mode 100644 index 0000000000..5e7a025d07 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.25mm Standard @SeeMeCNC RostockMAX v4 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.25mm Standard @SeeMeCNC RostockMAX v4 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.25mm Standard @SeeMeCNC RostockMAX v4 0.5", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.25", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC Artemis 0.4.json b/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC Artemis 0.4.json new file mode 100644 index 0000000000..66bff7d5df --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC Artemis 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.28mm Extra Draft @SeeMeCNC Artemis 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.28mm Extra Draft @SeeMeCNC Artemis 0.4", + "compatible_printers": [ + "SeeMeCNC Artemis 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.28", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4.json b/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4.json new file mode 100644 index 0000000000..1e35b0eb8f --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.28", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4.json b/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4.json new file mode 100644 index 0000000000..7c9ad2d811 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.28", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4.json b/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4.json new file mode 100644 index 0000000000..cd7b8b6ddf --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.28", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4.json b/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4.json new file mode 100644 index 0000000000..d5c4876849 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.28", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4.json b/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4.json new file mode 100644 index 0000000000..4155bb2e51 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.28", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4.json b/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4.json new file mode 100644 index 0000000000..7165fd06ee --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 0.4 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.2", + "layer_height": "0.28", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "1500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC Artemis 0.7.json b/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC Artemis 0.7.json new file mode 100644 index 0000000000..49667ba705 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC Artemis 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.28mm Fine @SeeMeCNC Artemis 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.28mm Fine @SeeMeCNC Artemis 0.7", + "compatible_printers": [ + "SeeMeCNC Artemis 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.28", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7.json b/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7.json new file mode 100644 index 0000000000..a34c19f2cc --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.28", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7.json b/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7.json new file mode 100644 index 0000000000..841444a1f1 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.28", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7.json b/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7.json new file mode 100644 index 0000000000..33bc3e82d4 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.28", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7.json b/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7.json new file mode 100644 index 0000000000..e90d3a88d6 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.28", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7.json b/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7.json new file mode 100644 index 0000000000..7520f43813 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.28", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC RostockMAX v4 0.7.json b/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC RostockMAX v4 0.7.json new file mode 100644 index 0000000000..bcc2c2e2c2 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.28mm Fine @SeeMeCNC RostockMAX v4 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.28mm Fine @SeeMeCNC RostockMAX v4 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.28mm Fine @SeeMeCNC RostockMAX v4 0.7", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.28", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC Artemis 0.5.json b/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC Artemis 0.5.json new file mode 100644 index 0000000000..522dd065d8 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC Artemis 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.30mm Draft @SeeMeCNC Artemis 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.30mm Draft @SeeMeCNC Artemis 0.5", + "compatible_printers": [ + "SeeMeCNC Artemis 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.3", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5.json b/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5.json new file mode 100644 index 0000000000..256c30d2b9 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.3", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5.json b/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5.json new file mode 100644 index 0000000000..9174c0dde7 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.3", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5.json b/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5.json new file mode 100644 index 0000000000..543e58af03 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.3", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5.json b/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5.json new file mode 100644 index 0000000000..dd03ab70bb --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.3", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5.json b/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5.json new file mode 100644 index 0000000000..7ffedffa57 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.3", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC RostockMAX v4 0.5.json b/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC RostockMAX v4 0.5.json new file mode 100644 index 0000000000..a06df312b0 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.30mm Draft @SeeMeCNC RostockMAX v4 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.30mm Draft @SeeMeCNC RostockMAX v4 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.30mm Draft @SeeMeCNC RostockMAX v4 0.5", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.3", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC Artemis 0.7.json b/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC Artemis 0.7.json new file mode 100644 index 0000000000..2c93f40bce --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC Artemis 0.7.json @@ -0,0 +1,34 @@ +{ + "type": "process", + "name": "0.30mm TPU Solid @SeeMeCNC Artemis 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.30mm TPU Solid @SeeMeCNC Artemis 0.7", + "compatible_printers": [ + "SeeMeCNC Artemis 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "bottom_surface_pattern": "concentric", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.3", + "precise_z_height": "0", + "skirt_distance": "1", + "skirt_loops": "2", + "spiral_mode": "0", + "top_shell_layers": "2", + "top_surface_pattern": "concentric", + "line_width": "0.9", + "outer_wall_line_width": "0.9", + "top_surface_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "initial_layer_line_width": "0.9", + "support_line_width": "0.9", + "skeleton_infill_line_width": "0.9", + "skin_infill_line_width": "0.9", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 300 0.7.json b/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 300 0.7.json new file mode 100644 index 0000000000..922b8d4a9d --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 300 0.7.json @@ -0,0 +1,34 @@ +{ + "type": "process", + "name": "0.30mm TPU Solid @SeeMeCNC BOSSdelta 300 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.30mm TPU Solid @SeeMeCNC BOSSdelta 300 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "bottom_surface_pattern": "concentric", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.3", + "precise_z_height": "0", + "skirt_distance": "1", + "skirt_loops": "2", + "spiral_mode": "0", + "top_shell_layers": "2", + "top_surface_pattern": "concentric", + "line_width": "0.9", + "outer_wall_line_width": "0.9", + "top_surface_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "initial_layer_line_width": "0.9", + "support_line_width": "0.9", + "skeleton_infill_line_width": "0.9", + "skin_infill_line_width": "0.9", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0505 0.7.json b/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0505 0.7.json new file mode 100644 index 0000000000..046aab13ee --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0505 0.7.json @@ -0,0 +1,34 @@ +{ + "type": "process", + "name": "0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0505 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0505 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "bottom_surface_pattern": "concentric", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.3", + "precise_z_height": "0", + "skirt_distance": "1", + "skirt_loops": "2", + "spiral_mode": "0", + "top_shell_layers": "2", + "top_surface_pattern": "concentric", + "line_width": "0.9", + "outer_wall_line_width": "0.9", + "top_surface_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "initial_layer_line_width": "0.9", + "support_line_width": "0.9", + "skeleton_infill_line_width": "0.9", + "skin_infill_line_width": "0.9", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0510 0.7.json b/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0510 0.7.json new file mode 100644 index 0000000000..8e0b8cdc36 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0510 0.7.json @@ -0,0 +1,34 @@ +{ + "type": "process", + "name": "0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0510 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0510 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "bottom_surface_pattern": "concentric", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.3", + "precise_z_height": "0", + "skirt_distance": "1", + "skirt_loops": "2", + "spiral_mode": "0", + "top_shell_layers": "2", + "top_surface_pattern": "concentric", + "line_width": "0.9", + "outer_wall_line_width": "0.9", + "top_surface_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "initial_layer_line_width": "0.9", + "support_line_width": "0.9", + "skeleton_infill_line_width": "0.9", + "skin_infill_line_width": "0.9", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0521 0.7.json b/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0521 0.7.json new file mode 100644 index 0000000000..68729627ee --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0521 0.7.json @@ -0,0 +1,34 @@ +{ + "type": "process", + "name": "0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0521 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0521 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "bottom_surface_pattern": "concentric", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.3", + "precise_z_height": "0", + "skirt_distance": "1", + "skirt_loops": "2", + "spiral_mode": "0", + "top_shell_layers": "2", + "top_surface_pattern": "concentric", + "line_width": "0.9", + "outer_wall_line_width": "0.9", + "top_surface_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "initial_layer_line_width": "0.9", + "support_line_width": "0.9", + "skeleton_infill_line_width": "0.9", + "skin_infill_line_width": "0.9", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC RostockMAX v3.2 0.7.json b/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC RostockMAX v3.2 0.7.json new file mode 100644 index 0000000000..8d4d608981 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC RostockMAX v3.2 0.7.json @@ -0,0 +1,34 @@ +{ + "type": "process", + "name": "0.30mm TPU Solid @SeeMeCNC RostockMAX v3.2 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.30mm TPU Solid @SeeMeCNC RostockMAX v3.2 0.7", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "bottom_surface_pattern": "concentric", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.3", + "precise_z_height": "0", + "skirt_distance": "1", + "skirt_loops": "2", + "spiral_mode": "0", + "top_shell_layers": "2", + "top_surface_pattern": "concentric", + "line_width": "0.9", + "outer_wall_line_width": "0.9", + "top_surface_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "initial_layer_line_width": "0.9", + "support_line_width": "0.9", + "skeleton_infill_line_width": "0.9", + "skin_infill_line_width": "0.9", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC RostockMAX v4 0.7.json b/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC RostockMAX v4 0.7.json new file mode 100644 index 0000000000..0c7063bd9b --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.30mm TPU Solid @SeeMeCNC RostockMAX v4 0.7.json @@ -0,0 +1,34 @@ +{ + "type": "process", + "name": "0.30mm TPU Solid @SeeMeCNC RostockMAX v4 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.30mm TPU Solid @SeeMeCNC RostockMAX v4 0.7", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "bottom_surface_pattern": "concentric", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.3", + "precise_z_height": "0", + "skirt_distance": "1", + "skirt_loops": "2", + "spiral_mode": "0", + "top_shell_layers": "2", + "top_surface_pattern": "concentric", + "line_width": "0.9", + "outer_wall_line_width": "0.9", + "top_surface_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "initial_layer_line_width": "0.9", + "support_line_width": "0.9", + "skeleton_infill_line_width": "0.9", + "skin_infill_line_width": "0.9", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC Artemis 0.5.json b/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC Artemis 0.5.json new file mode 100644 index 0000000000..48d7fb0b10 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC Artemis 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.35mm Extra Draft @SeeMeCNC Artemis 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm Extra Draft @SeeMeCNC Artemis 0.5", + "compatible_printers": [ + "SeeMeCNC Artemis 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5.json b/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5.json new file mode 100644 index 0000000000..3c5b9ba01f --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5.json b/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5.json new file mode 100644 index 0000000000..da3b820549 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5.json b/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5.json new file mode 100644 index 0000000000..eded24f5cb --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5.json b/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5.json new file mode 100644 index 0000000000..1cf97fd54c --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5.json b/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5.json new file mode 100644 index 0000000000..316a9cfc36 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5.json b/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5.json new file mode 100644 index 0000000000..1dc9db45b2 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 0.5 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.25", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1200" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC Artemis 0.7.json b/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC Artemis 0.7.json new file mode 100644 index 0000000000..cddbf4453c --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC Artemis 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.35mm Standard @SeeMeCNC Artemis 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm Standard @SeeMeCNC Artemis 0.7", + "compatible_printers": [ + "SeeMeCNC Artemis 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7.json b/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7.json new file mode 100644 index 0000000000..90971ce758 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7.json b/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7.json new file mode 100644 index 0000000000..53155e298f --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7.json b/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7.json new file mode 100644 index 0000000000..07594cd92d --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7.json b/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7.json new file mode 100644 index 0000000000..8de92d8888 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7.json b/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7.json new file mode 100644 index 0000000000..eae4d527aa --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC RostockMAX v4 0.7.json b/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC RostockMAX v4 0.7.json new file mode 100644 index 0000000000..bc8d5c6c4c --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm Standard @SeeMeCNC RostockMAX v4 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.35mm Standard @SeeMeCNC RostockMAX v4 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm Standard @SeeMeCNC RostockMAX v4 0.7", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC Artemis 0.7.json b/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC Artemis 0.7.json new file mode 100644 index 0000000000..cf28c40476 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC Artemis 0.7.json @@ -0,0 +1,37 @@ +{ + "type": "process", + "name": "0.35mm TPU Vase @SeeMeCNC Artemis 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm TPU Vase @SeeMeCNC Artemis 0.7", + "compatible_printers": [ + "SeeMeCNC Artemis 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "bottom_shell_layers": "0", + "bottom_surface_pattern": "concentric", + "counterbore_hole_bridging": "none", + "ensure_vertical_shell_thickness": "ensure_moderate", + "initial_layer_print_height": "0.3", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "1", + "skirt_loops": "2", + "spiral_mode": "1", + "top_shell_layers": "0", + "top_surface_pattern": "concentric", + "wall_loops": "1", + "line_width": "0.9", + "outer_wall_line_width": "0.9", + "top_surface_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "initial_layer_line_width": "0.9", + "support_line_width": "0.9", + "skeleton_infill_line_width": "0.9", + "skin_infill_line_width": "0.9", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 300 0.7.json b/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 300 0.7.json new file mode 100644 index 0000000000..68ff32cb8b --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 300 0.7.json @@ -0,0 +1,37 @@ +{ + "type": "process", + "name": "0.35mm TPU Vase @SeeMeCNC BOSSdelta 300 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm TPU Vase @SeeMeCNC BOSSdelta 300 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "bottom_shell_layers": "0", + "bottom_surface_pattern": "concentric", + "counterbore_hole_bridging": "none", + "ensure_vertical_shell_thickness": "ensure_moderate", + "initial_layer_print_height": "0.3", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "1", + "skirt_loops": "2", + "spiral_mode": "1", + "top_shell_layers": "0", + "top_surface_pattern": "concentric", + "wall_loops": "1", + "line_width": "0.9", + "outer_wall_line_width": "0.9", + "top_surface_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "initial_layer_line_width": "0.9", + "support_line_width": "0.9", + "skeleton_infill_line_width": "0.9", + "skin_infill_line_width": "0.9", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0505 0.7.json b/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0505 0.7.json new file mode 100644 index 0000000000..dd2dcf9a5c --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0505 0.7.json @@ -0,0 +1,37 @@ +{ + "type": "process", + "name": "0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0505 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0505 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "bottom_shell_layers": "0", + "bottom_surface_pattern": "concentric", + "counterbore_hole_bridging": "none", + "ensure_vertical_shell_thickness": "ensure_moderate", + "initial_layer_print_height": "0.3", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "1", + "skirt_loops": "2", + "spiral_mode": "1", + "top_shell_layers": "0", + "top_surface_pattern": "concentric", + "wall_loops": "1", + "line_width": "0.9", + "outer_wall_line_width": "0.9", + "top_surface_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "initial_layer_line_width": "0.9", + "support_line_width": "0.9", + "skeleton_infill_line_width": "0.9", + "skin_infill_line_width": "0.9", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0510 0.7.json b/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0510 0.7.json new file mode 100644 index 0000000000..1b8b37262f --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0510 0.7.json @@ -0,0 +1,37 @@ +{ + "type": "process", + "name": "0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0510 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0510 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "bottom_shell_layers": "0", + "bottom_surface_pattern": "concentric", + "counterbore_hole_bridging": "none", + "ensure_vertical_shell_thickness": "ensure_moderate", + "initial_layer_print_height": "0.3", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "1", + "skirt_loops": "2", + "spiral_mode": "1", + "top_shell_layers": "0", + "top_surface_pattern": "concentric", + "wall_loops": "1", + "line_width": "0.9", + "outer_wall_line_width": "0.9", + "top_surface_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "initial_layer_line_width": "0.9", + "support_line_width": "0.9", + "skeleton_infill_line_width": "0.9", + "skin_infill_line_width": "0.9", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0521 0.7.json b/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0521 0.7.json new file mode 100644 index 0000000000..63645975c6 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0521 0.7.json @@ -0,0 +1,37 @@ +{ + "type": "process", + "name": "0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0521 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0521 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "bottom_shell_layers": "0", + "bottom_surface_pattern": "concentric", + "counterbore_hole_bridging": "none", + "ensure_vertical_shell_thickness": "ensure_moderate", + "initial_layer_print_height": "0.3", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "1", + "skirt_loops": "2", + "spiral_mode": "1", + "top_shell_layers": "0", + "top_surface_pattern": "concentric", + "wall_loops": "1", + "line_width": "0.9", + "outer_wall_line_width": "0.9", + "top_surface_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "initial_layer_line_width": "0.9", + "support_line_width": "0.9", + "skeleton_infill_line_width": "0.9", + "skin_infill_line_width": "0.9", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC RostockMAX v3.2 0.7.json b/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC RostockMAX v3.2 0.7.json new file mode 100644 index 0000000000..423852eda4 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC RostockMAX v3.2 0.7.json @@ -0,0 +1,37 @@ +{ + "type": "process", + "name": "0.35mm TPU Vase @SeeMeCNC RostockMAX v3.2 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm TPU Vase @SeeMeCNC RostockMAX v3.2 0.7", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "bottom_shell_layers": "0", + "bottom_surface_pattern": "concentric", + "counterbore_hole_bridging": "none", + "ensure_vertical_shell_thickness": "ensure_moderate", + "initial_layer_print_height": "0.3", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "1", + "skirt_loops": "2", + "spiral_mode": "1", + "top_shell_layers": "0", + "top_surface_pattern": "concentric", + "wall_loops": "1", + "line_width": "0.9", + "outer_wall_line_width": "0.9", + "top_surface_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "initial_layer_line_width": "0.9", + "support_line_width": "0.9", + "skeleton_infill_line_width": "0.9", + "skin_infill_line_width": "0.9", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC RostockMAX v4 0.7.json b/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC RostockMAX v4 0.7.json new file mode 100644 index 0000000000..6002585396 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.35mm TPU Vase @SeeMeCNC RostockMAX v4 0.7.json @@ -0,0 +1,37 @@ +{ + "type": "process", + "name": "0.35mm TPU Vase @SeeMeCNC RostockMAX v4 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.35mm TPU Vase @SeeMeCNC RostockMAX v4 0.7", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "bottom_shell_layers": "0", + "bottom_surface_pattern": "concentric", + "counterbore_hole_bridging": "none", + "ensure_vertical_shell_thickness": "ensure_moderate", + "initial_layer_print_height": "0.3", + "layer_height": "0.35", + "precise_z_height": "0", + "skirt_distance": "1", + "skirt_loops": "2", + "spiral_mode": "1", + "top_shell_layers": "0", + "top_surface_pattern": "concentric", + "wall_loops": "1", + "line_width": "0.9", + "outer_wall_line_width": "0.9", + "top_surface_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "initial_layer_line_width": "0.9", + "support_line_width": "0.9", + "skeleton_infill_line_width": "0.9", + "skin_infill_line_width": "0.9", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC Artemis 1.0.json b/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC Artemis 1.0.json new file mode 100644 index 0000000000..f561a3114c --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC Artemis 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.40mm Fine @SeeMeCNC Artemis 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.40mm Fine @SeeMeCNC Artemis 1.0", + "compatible_printers": [ + "SeeMeCNC Artemis 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.4", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0.json b/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0.json new file mode 100644 index 0000000000..6807856889 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.4", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0.json b/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0.json new file mode 100644 index 0000000000..6ac2d1f367 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.4", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0.json b/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0.json new file mode 100644 index 0000000000..7823ab303c --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.4", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0.json b/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0.json new file mode 100644 index 0000000000..fd18ed0344 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.4", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0.json b/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0.json new file mode 100644 index 0000000000..a238435f95 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.4", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC RostockMAX v4 1.0.json b/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC RostockMAX v4 1.0.json new file mode 100644 index 0000000000..8193ebb0cc --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.40mm Fine @SeeMeCNC RostockMAX v4 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.40mm Fine @SeeMeCNC RostockMAX v4 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.40mm Fine @SeeMeCNC RostockMAX v4 1.0", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.4", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC Artemis 0.7.json b/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC Artemis 0.7.json new file mode 100644 index 0000000000..5cf5486a13 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC Artemis 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.42mm Draft @SeeMeCNC Artemis 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.42mm Draft @SeeMeCNC Artemis 0.7", + "compatible_printers": [ + "SeeMeCNC Artemis 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.42", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7.json b/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7.json new file mode 100644 index 0000000000..553ea160b0 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.42", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7.json b/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7.json new file mode 100644 index 0000000000..e815f68cd3 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.42", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7.json b/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7.json new file mode 100644 index 0000000000..66575b6c5f --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.42", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7.json b/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7.json new file mode 100644 index 0000000000..e2c4f31abe --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.42", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7.json b/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7.json new file mode 100644 index 0000000000..36bf4e41d2 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.42", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC RostockMAX v4 0.7.json b/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC RostockMAX v4 0.7.json new file mode 100644 index 0000000000..ffc0197005 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.42mm Draft @SeeMeCNC RostockMAX v4 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.42mm Draft @SeeMeCNC RostockMAX v4 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.42mm Draft @SeeMeCNC RostockMAX v4 0.7", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.42", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC Artemis 0.7.json b/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC Artemis 0.7.json new file mode 100644 index 0000000000..4ab95ebeb1 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC Artemis 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.49mm Extra Draft @SeeMeCNC Artemis 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.49mm Extra Draft @SeeMeCNC Artemis 0.7", + "compatible_printers": [ + "SeeMeCNC Artemis 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.49", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7.json b/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7.json new file mode 100644 index 0000000000..b67733960d --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.49", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7.json b/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7.json new file mode 100644 index 0000000000..4c694c42f8 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.49", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7.json b/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7.json new file mode 100644 index 0000000000..b444945dbd --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.49", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7.json b/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7.json new file mode 100644 index 0000000000..2a4f72f3eb --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.49", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7.json b/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7.json new file mode 100644 index 0000000000..a77c6544e0 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.49", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7.json b/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7.json new file mode 100644 index 0000000000..eebbdcb867 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 0.7 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.35", + "layer_height": "0.49", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "800" +} diff --git a/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC Artemis 1.0.json b/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC Artemis 1.0.json new file mode 100644 index 0000000000..1b8877983c --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC Artemis 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.50mm Standard @SeeMeCNC Artemis 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.50mm Standard @SeeMeCNC Artemis 1.0", + "compatible_printers": [ + "SeeMeCNC Artemis 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.5", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0.json b/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0.json new file mode 100644 index 0000000000..dcc4b6f80f --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.5", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0.json b/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0.json new file mode 100644 index 0000000000..c1395ff209 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.5", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0.json b/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0.json new file mode 100644 index 0000000000..f1d7f378cd --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.5", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0.json b/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0.json new file mode 100644 index 0000000000..fbc9d07d34 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.5", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0.json b/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0.json new file mode 100644 index 0000000000..0fe9a4b8cc --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.5", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC RostockMAX v4 1.0.json b/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC RostockMAX v4 1.0.json new file mode 100644 index 0000000000..ac12c9bb5c --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.50mm Standard @SeeMeCNC RostockMAX v4 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.50mm Standard @SeeMeCNC RostockMAX v4 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.50mm Standard @SeeMeCNC RostockMAX v4 1.0", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.5", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC Artemis 1.0.json b/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC Artemis 1.0.json new file mode 100644 index 0000000000..cac43f4d9f --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC Artemis 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.60mm Draft @SeeMeCNC Artemis 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.60mm Draft @SeeMeCNC Artemis 1.0", + "compatible_printers": [ + "SeeMeCNC Artemis 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.6", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0.json b/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0.json new file mode 100644 index 0000000000..86119f0cab --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.6", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0.json b/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0.json new file mode 100644 index 0000000000..81da080533 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.6", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0.json b/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0.json new file mode 100644 index 0000000000..d34c5fb9dc --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.6", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0.json b/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0.json new file mode 100644 index 0000000000..97b5bf671d --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.6", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0.json b/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0.json new file mode 100644 index 0000000000..0cd62fecac --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.6", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC RostockMAX v4 1.0.json b/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC RostockMAX v4 1.0.json new file mode 100644 index 0000000000..b819217d25 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.60mm Draft @SeeMeCNC RostockMAX v4 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.60mm Draft @SeeMeCNC RostockMAX v4 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.60mm Draft @SeeMeCNC RostockMAX v4 1.0", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.6", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC Artemis 1.0.json b/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC Artemis 1.0.json new file mode 100644 index 0000000000..f8c8e83126 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC Artemis 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.70mm Extra Draft @SeeMeCNC Artemis 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.70mm Extra Draft @SeeMeCNC Artemis 1.0", + "compatible_printers": [ + "SeeMeCNC Artemis 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.7", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0.json b/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0.json new file mode 100644 index 0000000000..3e133a208d --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 300 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.7", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0.json b/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0.json new file mode 100644 index 0000000000..eed73783f6 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0505 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.7", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0.json b/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0.json new file mode 100644 index 0000000000..4414b3557c --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0510 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.7", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0.json b/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0.json new file mode 100644 index 0000000000..7208968058 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0", + "compatible_printers": [ + "SeeMeCNC BOSSdelta 500 0521 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.7", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0.json b/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0.json new file mode 100644 index 0000000000..9ddeacd0a8 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0", + "compatible_printers": [ + "SeeMeCNC RostockMAX v3.2 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.7", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0.json b/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0.json new file mode 100644 index 0000000000..c7f8388a1b --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0", + "inherits": "SeeMeCNC process base", + "from": "System", + "instantiation": "true", + "print_settings_id": "0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0", + "compatible_printers": [ + "SeeMeCNC RostockMAX v4 1.0 nozzle" + ], + "compatible_printers_condition": "", + "alternate_extra_wall": "0", + "counterbore_hole_bridging": "none", + "initial_layer_print_height": "0.3", + "layer_height": "0.7", + "precise_z_height": "0", + "skirt_distance": "2", + "skirt_loops": "0", + "spiral_mode": "0", + "outer_wall_acceleration": "500", + "inner_wall_acceleration": "500" +} diff --git a/resources/profiles/SeeMeCNC/process/SeeMeCNC_process_base.json b/resources/profiles/SeeMeCNC/process/SeeMeCNC_process_base.json new file mode 100644 index 0000000000..f1562c0f45 --- /dev/null +++ b/resources/profiles/SeeMeCNC/process/SeeMeCNC_process_base.json @@ -0,0 +1,351 @@ +{ + "type": "process", + "name": "SeeMeCNC process base", + "from": "system", + "instantiation": "false", + "accel_to_decel_enable": "0", + "accel_to_decel_factor": "50%", + "align_infill_direction_to_model": "0", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_density": "100%", + "bridge_acceleration": "30%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_use_efc_outline": "0", + "brim_width": "5", + "calib_flowrate_topinfill_special_order": "0", + "default_acceleration": "2000", + "default_jerk": "8", + "default_junction_deviation": "0", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0", + "elefant_foot_compensation_layers": "1", + "enable_extra_bridge_layer": "disabled", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "0", + "enable_tower_interface_cooldown_during_tower": "0", + "enable_tower_interface_features": "0", + "enable_wrapping_detection": "0", + "enforce_support_layers": "0", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "1", + "extra_solid_infills": "", + "extrusion_rate_smoothing_external_perimeter_only": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "fill_multiline": "1", + "filter_out_gap_fill": "0", + "first_layer_flow_ratio": "1", + "flush_into_infill": "1", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "disabled_fuzzy", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_mode": "displacement", + "fuzzy_skin_noise_type": "classic", + "fuzzy_skin_octaves": "4", + "fuzzy_skin_persistence": "0.5", + "fuzzy_skin_point_distance": "0.3", + "fuzzy_skin_scale": "1", + "fuzzy_skin_thickness": "0.2", + "gap_fill_flow_ratio": "1", + "gap_fill_target": "nowhere", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "0", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_combination_max_layer_height": "100%", + "infill_direction": "45", + "infill_jerk": "8", + "infill_lock_depth": "1", + "infill_overhang_angle": "60", + "infill_shift_step": "0.4", + "infill_wall_overlap": "25%", + "initial_layer_acceleration": "600", + "initial_layer_infill_speed": "60", + "initial_layer_jerk": "4", + "initial_layer_min_bead_width": "85%", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "1000", + "inner_wall_flow_ratio": "1", + "inner_wall_jerk": "8", + "interface_shells": "0", + "interlocking_beam": "0", + "interlocking_beam_layer_count": "2", + "interlocking_beam_width": "0.8", + "interlocking_boundary_avoidance": "2", + "interlocking_depth": "2", + "interlocking_orientation": "22.5", + "internal_bridge_angle": "0", + "internal_bridge_density": "100%", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_flow_ratio": "1", + "internal_solid_infill_pattern": "monotonic", + "ironing_angle": "0", + "ironing_angle_fixed": "0", + "ironing_flow": "10%", + "ironing_inset": "0", + "ironing_pattern": "rectilinear", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_type": "no ironing", + "is_infill_first": "0", + "lateral_lattice_angle_1": "-45", + "lateral_lattice_angle_2": "45", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "50", + "max_travel_detour_distance": "10000", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_skirt_length": "4", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "notes": "", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "0", + "ooze_prevention": "0", + "outer_wall_flow_ratio": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "overhang_flow_ratio": "1", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "post_process": [], + "precise_outer_wall": "1", + "preheat_steps": "1", + "preheat_time": "30", + "prime_tower_brim_width": "3", + "prime_tower_enable_framework": "1", + "prime_tower_flat_ironing": "0", + "prime_tower_infill_gap": "150%", + "prime_tower_skip_points": "0", + "prime_tower_width": "30", + "prime_volume": "150", + "print_extruder_id": [ + "1" + ], + "print_extruder_variant": [ + "Bowden Standard" + ], + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "35%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "set_other_flow_ratios": "0", + "single_extruder_multi_material_priming": "0", + "single_loop_draft_shield": "0", + "skeleton_infill_density": "25%", + "skeleton_infill_line_width": "100%", + "skin_infill_density": "25%", + "skin_infill_depth": "2", + "skin_infill_line_width": "100%", + "skirt_height": "1", + "skirt_speed": "50", + "skirt_start_angle": "-135", + "skirt_type": "combined", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "4", + "slowdown_for_curled_perimeters": "1", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": [ + "0,0", + "\n0.2,0.4444", + "\n0.4,0.6145", + "\n0.6,0.7059", + "\n0.8,0.7619", + "\n1.5,0.8571", + "\n2,0.8889", + "\n3,0.9231", + "\n5,0.9520", + "\n10,1" + ], + "solid_infill_direction": "45", + "solid_infill_filament": "1", + "solid_infill_rotate_template": "", + "sparse_infill_acceleration": "100%", + "sparse_infill_filament": "1", + "sparse_infill_flow_ratio": "1", + "sparse_infill_pattern": "gyroid", + "sparse_infill_rotate_template": "", + "spiral_finishing_flow_ratio": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "spiral_starting_flow_ratio": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "1", + "support_expansion": "0", + "support_filament": "0", + "support_flow_ratio": "1", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_flow_ratio": "1", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.8", + "support_interface_top_layers": "1", + "support_ironing": "0", + "support_ironing_flow": "10%", + "support_ironing_pattern": "rectilinear", + "support_ironing_spacing": "0.1", + "support_object_first_layer_gap": "0.2", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "1", + "support_remove_small_overhang": "1", + "support_style": "default", + "support_threshold_angle": "30", + "support_threshold_overlap": "50%", + "support_top_z_distance": "0.3", + "support_type": "tree(auto)", + "symmetric_infill_y_axis": "0", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_bottom_infill_wall_overlap": "25%", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_density": "100%", + "top_surface_jerk": "8", + "travel_acceleration": "2000", + "travel_speed_z": "0", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "5", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "2", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "arachne", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "1", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "30", + "wipe_tower_extra_flow": "100%", + "wipe_tower_extra_rib_length": "5", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_filament": "0", + "wipe_tower_fillet_wall": "1", + "wipe_tower_max_purge_speed": "60", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rib_width": "3", + "wipe_tower_rotation_angle": "0", + "wipe_tower_wall_type": "rib", + "wiping_volumes_extruders": [ + "70", + "70", + "70", + "70", + "70", + "70", + "70", + "70", + "70", + "70" + ], + "xy_contour_compensation": "0", + "top_surface_acceleration": "600", + "travel_jerk": "10", + "initial_layer_speed": "30", + "outer_wall_acceleration": "1000", + "outer_wall_line_width": "100%", + "line_width": "100%", + "initial_layer_line_width": "125%", + "inner_wall_line_width": "100%", + "top_surface_line_width": "105%", + "sparse_infill_line_width": "125%", + "internal_solid_infill_line_width": "105%", + "support_line_width": "125%", + "outer_wall_speed": "60", + "inner_wall_speed": "80", + "sparse_infill_speed": "100", + "internal_solid_infill_speed": "100", + "gap_infill_speed": "60", + "support_speed": "60", + "support_interface_speed": "50", + "top_surface_speed": "50", + "small_perimeter_speed": "40%", + "small_perimeter_threshold": "0", + "outer_wall_jerk": "4", + "xy_hole_compensation": "0", + "description": "SeeMeCNC configurations", + "top_surface_flow_ratio": "0.95", + "travel_speed": "150", + "support_wall_loops": "0", + "wall_loops": "3", + "sparse_infill_density": "20%", + "top_surface_pattern": "monotonicline", + "bottom_shell_layers": "4", + "top_shell_layers": "4", + "bottom_surface_pattern": "monotonicline", + "detect_thin_wall": "1", + "ensure_vertical_shell_thickness": "ensure_all", + "bridge_speed": "35" +}