Compare commits
11 Commits
main
...
development
| Author | SHA1 | Date | |
|---|---|---|---|
| e1308bfa21 | |||
| ed1d1f5b44 | |||
| aff871baaa | |||
| 0608e7048d | |||
| 0875e55c1d | |||
| 3508bcc42e | |||
| e59bfb2e12 | |||
| 3bb4039c78 | |||
| bd49e19c9e | |||
| 73bcd75b78 | |||
| a0578fa35d |
@@ -85,7 +85,7 @@ jobs:
|
|||||||
|
|
||||||
build-connector-mac:
|
build-connector-mac:
|
||||||
macos:
|
macos:
|
||||||
xcode: 12.5.1
|
xcode: 13.4.1
|
||||||
parameters:
|
parameters:
|
||||||
projname:
|
projname:
|
||||||
type: string
|
type: string
|
||||||
|
|||||||
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
[submodule "_sqlite3"]
|
[submodule "_sqlite3"]
|
||||||
path = _sqlite3
|
path = _sqlite3
|
||||||
url = git@github.com:specklesystems/sketchup-sqlite3.git
|
url = https://github.com/specklesystems/sketchup-sqlite3.git
|
||||||
|
|||||||
@@ -2,44 +2,14 @@
|
|||||||
<img src="https://user-images.githubusercontent.com/2679513/131189167-18ea5fe1-c578-47f6-9785-3748178e4312.png" width="150px"/><br/>
|
<img src="https://user-images.githubusercontent.com/2679513/131189167-18ea5fe1-c578-47f6-9785-3748178e4312.png" width="150px"/><br/>
|
||||||
Speckle | SketchUp
|
Speckle | SketchUp
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
|
<p align="center"><a href="https://twitter.com/SpeckleSystems"><img src="https://img.shields.io/twitter/follow/SpeckleSystems?style=social" alt="Twitter Follow"></a> <a href="https://speckle.community"><img src="https://img.shields.io/discourse/users?server=https%3A%2F%2Fspeckle.community&style=flat-square&logo=discourse&logoColor=white" alt="Community forum users"></a> <a href="https://speckle.systems"><img src="https://img.shields.io/badge/https://-speckle.systems-royalblue?style=flat-square" alt="website"></a> <a href="https://speckle.guide/dev/"><img src="https://img.shields.io/badge/docs-speckle.guide-orange?style=flat-square&logo=read-the-docs&logoColor=white" alt="docs"></a></p>
|
||||||
|
|
||||||
|
> Speckle is the first AEC data hub that connects with your favorite AEC tools. Speckle exists to overcome the challenges of working in a fragmented industry where communication, creative workflows, and the exchange of data are often hindered by siloed software and processes. It is here to make the industry better.
|
||||||
|
|
||||||
<h3 align="center">
|
<h3 align="center">
|
||||||
Connector for SketchUp
|
Connector for SketchUp
|
||||||
</h3>
|
</h3>
|
||||||
<p align="center"><b>Speckle</b> is the data infrastructure for the AEC industry.</p><br/>
|
|
||||||
|
|
||||||
<p align="center"><a href="https://twitter.com/SpeckleSystems"><img src="https://img.shields.io/twitter/follow/SpeckleSystems?style=social" alt="Twitter Follow"></a> <a href="https://speckle.community"><img src="https://img.shields.io/discourse/users?server=https%3A%2F%2Fspeckle.community&style=flat-square&logo=discourse&logoColor=white" alt="Community forum users"></a> <a href="https://speckle.systems"><img src="https://img.shields.io/badge/https://-speckle.systems-royalblue?style=flat-square" alt="website"></a> <a href="https://speckle.guide/dev/"><img src="https://img.shields.io/badge/docs-speckle.guide-orange?style=flat-square&logo=read-the-docs&logoColor=white" alt="docs"></a></p>
|
|
||||||
<p align="center"><a href="https://github.com/specklesystems/speckle-blender/"><img src="https://circleci.com/gh/specklesystems/speckle-blender.svg?style=svg&circle-token=76eabd350ea243575cbb258b746ed3f471f7ac29" alt="Speckle-Next"></a> </p>
|
|
||||||
|
|
||||||
# About Speckle
|
|
||||||
|
|
||||||
What is Speckle? Check our 
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
- **Object-based:** say goodbye to files! Speckle is the first object based platform for the AEC industry
|
|
||||||
- **Version control:** Speckle is the Git & Hub for geometry and BIM data
|
|
||||||
- **Collaboration:** share your designs collaborate with others
|
|
||||||
- **3D Viewer:** see your CAD and BIM models online, share and embed them anywhere
|
|
||||||
- **Interoperability:** get your CAD and BIM models into other software without exporting or importing
|
|
||||||
- **Real time:** get real time updates and notifications and changes
|
|
||||||
- **GraphQL API:** get what you need anywhere you want it
|
|
||||||
- **Webhooks:** the base for a automation and next-gen pipelines
|
|
||||||
- **Built for developers:** we are building Speckle with developers in mind and got tools for every stack
|
|
||||||
- **Built for the AEC industry:** Speckle connectors are plugins for the most common software used in the industry such as Revit, Rhino, Grasshopper, AutoCAD, Civil 3D, Excel, Unreal Engine, Unity, QGIS, Blender and more!
|
|
||||||
|
|
||||||
### Try Speckle now!
|
|
||||||
|
|
||||||
Give Speckle a try in no time by:
|
|
||||||
|
|
||||||
- [](https://speckle.xyz) ⇒ creating an account at our public server
|
|
||||||
- [](https://marketplace.digitalocean.com/apps/speckle-server?refcode=947a2b5d7dc1) ⇒ deploying an instance in 1 click
|
|
||||||
|
|
||||||
### Resources
|
|
||||||
|
|
||||||
- [](https://speckle.community) for help, feature requests or just to hang with other speckle enthusiasts, check out our community forum!
|
|
||||||
- [](https://speckle.systems) our tutorials portal is full of resources to get you started using Speckle
|
|
||||||
- [](https://speckle.guide/user/blender.html) reference on almost any end-user and developer functionality
|
|
||||||
|
|
||||||
|
|
||||||
# Repo structure
|
# Repo structure
|
||||||
|
|
||||||
@@ -66,6 +36,15 @@ This repo is split into three parts:
|
|||||||
After building `sqlite3.sln` file, compiled `sqlite3.so` (for Windows) and `sqlite3.bundle` (for OSX) dynamic library files are created
|
After building `sqlite3.sln` file, compiled `sqlite3.so` (for Windows) and `sqlite3.bundle` (for OSX) dynamic library files are created
|
||||||
by solution to place them into source code into `speckle_connector/src/ext`. Building this project should be only
|
by solution to place them into source code into `speckle_connector/src/ext`. Building this project should be only
|
||||||
happen when SketchUp starts to support newer Ruby versions (currently it is `2.7`).
|
happen when SketchUp starts to support newer Ruby versions (currently it is `2.7`).
|
||||||
|
|
||||||
|
### Other repos
|
||||||
|
|
||||||
|
Make sure to also check and ⭐️ these other Speckle next generation repositories:
|
||||||
|
|
||||||
|
- [`speckle-sharp-connectors`](https://github.com/specklesystems/speckle-sharp-connectors): .NET connectors and desktop UI
|
||||||
|
- [`speckle-sharp-sdk`](https://github.com/specklesystems/speckle-sharp-sdk): our .NET SDK for next gen connectors and development
|
||||||
|
- [`speckle-powerbi`](https://github.com/specklesystems/speckle-powerbi): PowerBi connector
|
||||||
|
- and more [connectors & tooling](https://github.com/specklesystems/)!
|
||||||
|
|
||||||
## Contribution Guide
|
## Contribution Guide
|
||||||
|
|
||||||
@@ -194,4 +173,4 @@ To track your code quality locally,
|
|||||||
2. To check overall state of repository by RubyCritic, run below
|
2. To check overall state of repository by RubyCritic, run below
|
||||||
```ruby
|
```ruby
|
||||||
rake rubycritic
|
rake rubycritic
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ module SpeckleConnector
|
|||||||
|
|
||||||
# Run from localhost or from build files
|
# Run from localhost or from build files
|
||||||
DEV_MODE = false
|
DEV_MODE = false
|
||||||
puts("Loading Speckle Connector v#{CONNECTOR_VERSION} from #{DEV_MODE ? 'dev' : 'build'}")
|
puts("Loading Speckle (Legacy) Connector v#{CONNECTOR_VERSION} from #{DEV_MODE ? 'dev' : 'build'}")
|
||||||
|
|
||||||
unless file_loaded?(__FILE__)
|
unless file_loaded?(__FILE__)
|
||||||
ex = SketchupExtension.new('Speckle SketchUp', File.join(PATH, 'bootstrap'))
|
ex = SketchupExtension.new('Speckle SketchUp', File.join(PATH, 'bootstrap'))
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 26 KiB |
@@ -12,7 +12,7 @@ module SpeckleConnector
|
|||||||
# This is the command where we show UI to user.
|
# This is the command where we show UI to user.
|
||||||
class InitializeSpeckle < Command
|
class InitializeSpeckle < Command
|
||||||
def dialog_title
|
def dialog_title
|
||||||
"Speckle #{CONNECTOR_VERSION}"
|
"Speckle (Legacy) #{CONNECTOR_VERSION}"
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
@@ -30,18 +30,14 @@ module SpeckleConnector
|
|||||||
|
|
||||||
commands[CMD_RESET_WINDOW_LOCATION_SPECKLE] = reset_window_location_command(app)
|
commands[CMD_RESET_WINDOW_LOCATION_SPECKLE] = reset_window_location_command(app)
|
||||||
commands.add_to_menu!(CMD_RESET_WINDOW_LOCATION_SPECKLE, speckle_menu)
|
commands.add_to_menu!(CMD_RESET_WINDOW_LOCATION_SPECKLE, speckle_menu)
|
||||||
|
|
||||||
# commands[CMD_SEND_TO_SPECKLE] = send_command(app)
|
|
||||||
# commands.add_to_menu!(CMD_SEND_TO_SPECKLE, speckle_menu)
|
|
||||||
# commands.add_to_toolbar!(CMD_SEND_TO_SPECKLE, speckle_toolbar)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.initialize_speckle_command(app)
|
def self.initialize_speckle_command(app)
|
||||||
cmd = MenuCommandHandler.sketchup_command(
|
cmd = MenuCommandHandler.sketchup_command(
|
||||||
InitializeSpeckle.new(app), 'Initialize Speckle'
|
InitializeSpeckle.new(app), 'Initialize Speckle (Legacy)'
|
||||||
)
|
)
|
||||||
cmd.tooltip = 'Launch Connector'
|
cmd.tooltip = 'Launch Connector'
|
||||||
cmd.status_bar_text = 'Opens the Speckle Connector window'
|
cmd.status_bar_text = 'Opens the Speckle (Legacy) Connector window'
|
||||||
cmd.small_icon = '../../img/s2logo.png'
|
cmd.small_icon = '../../img/s2logo.png'
|
||||||
cmd.large_icon = '../../img/s2logo.png'
|
cmd.large_icon = '../../img/s2logo.png'
|
||||||
cmd
|
cmd
|
||||||
@@ -57,18 +53,6 @@ module SpeckleConnector
|
|||||||
cmd.large_icon = '../../img/s2logo.png'
|
cmd.large_icon = '../../img/s2logo.png'
|
||||||
cmd
|
cmd
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.send_command(app)
|
|
||||||
cmd = MenuCommandHandler.sketchup_command(
|
|
||||||
ActionCommand.new(app, Actions::OneClickSend), 'Send to Speckle'
|
|
||||||
)
|
|
||||||
cmd.tooltip = 'Send to Speckle'
|
|
||||||
cmd.status_bar_text = 'Send to Speckle'
|
|
||||||
cmd.small_icon = '../../img/Sender.png'
|
|
||||||
cmd.large_icon = '../../img/Sender.png'
|
|
||||||
cmd.set_validation_proc { MenuCommandHandler.speckle_started(app) }
|
|
||||||
cmd
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -14,7 +14,9 @@ module SpeckleConnector
|
|||||||
path = ENV.fetch('APPDATA')
|
path = ENV.fetch('APPDATA')
|
||||||
Pathname.new(File.join(path, 'Speckle')).cleanpath.to_s
|
Pathname.new(File.join(path, 'Speckle')).cleanpath.to_s
|
||||||
when OS_MAC
|
when OS_MAC
|
||||||
File.join(Dir.home, '.config/Speckle')
|
primary_path = File.join(Dir.home, '.config/Speckle')
|
||||||
|
fallback_path = File.join(Dir.home, 'Library/Application Support/Speckle')
|
||||||
|
Dir.exist?(primary_path) ? primary_path : fallback_path
|
||||||
else
|
else
|
||||||
raise 'Speckle could not determine your Appdata path'
|
raise 'Speckle could not determine your Appdata path'
|
||||||
end
|
end
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -19,7 +19,7 @@ module SpeckleConnector
|
|||||||
id: nil
|
id: nil
|
||||||
)
|
)
|
||||||
self[:units] = units
|
self[:units] = units
|
||||||
self[:value] = value
|
self[:matrix] = value
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.from_transformation(transformation, units)
|
def self.from_transformation(transformation, units)
|
||||||
|
|||||||
@@ -81,8 +81,9 @@ module SpeckleConnector
|
|||||||
dialog.set_can_close do
|
dialog.set_can_close do
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
File.exist?(@htm_file) ? dialog.set_file(@htm_file) : dialog.set_url('http://localhost:8081')
|
# File.exist?(@htm_file) ? dialog.set_file(@htm_file) : dialog.set_url('http://localhost:8081')
|
||||||
# dialog.set_url('http://localhost:8081') # uncomment this line if you want to use your local version of ui
|
# dialog.set_url('http://localhost:8081') # uncomment this line if you want to use your local version of ui
|
||||||
|
dialog.set_url('https://development--speckle-sketchup-dui2.netlify.app/')
|
||||||
add_exec_callback(dialog)
|
add_exec_callback(dialog)
|
||||||
dialog
|
dialog
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ module SpeckleConnector
|
|||||||
# An interface to Sketchup user interface. This object controls the menu `Extensions->Speckle` in Sketchup's menu,
|
# An interface to Sketchup user interface. This object controls the menu `Extensions->Speckle` in Sketchup's menu,
|
||||||
# the Speckle toolbar and sending message to the user via Sketchup.
|
# the Speckle toolbar and sending message to the user via Sketchup.
|
||||||
class SketchupUi
|
class SketchupUi
|
||||||
MENU_TITLE = 'Speckle'
|
MENU_TITLE = 'Speckle (Legacy)'
|
||||||
BEFORE_NEVER_SHOWN = -1
|
BEFORE_NEVER_SHOWN = -1
|
||||||
|
|
||||||
# @return [Sketchup::Menu] the menu of the Speckle
|
# @return [Sketchup::Menu] the menu of the Speckle
|
||||||
|
|||||||
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
VUE_APP_DEV_TOKEN=
|
VUE_APP_DEV_TOKEN=
|
||||||
VUE_APP_SPECKLE_NAME=SpeckleSketchup
|
VUE_APP_SPECKLE_NAME=SpeckleSketchup
|
||||||
VUE_APP_DEFAULT_SERVER=https://latest.speckle.dev
|
VUE_APP_DEFAULT_SERVER=https://latest.speckle.systems
|
||||||
+4
-1
@@ -1,6 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-app>
|
<v-app>
|
||||||
<v-main>
|
<v-main>
|
||||||
|
<legacy-dialog/>
|
||||||
<v-app-bar app flat height="50">
|
<v-app-bar app flat height="50">
|
||||||
<v-img
|
<v-img
|
||||||
class="mx-auto px-0"
|
class="mx-auto px-0"
|
||||||
@@ -135,6 +136,7 @@ import userQuery from './graphql/user.gql'
|
|||||||
import serverInfoQuery from './graphql/serverInfo.gql'
|
import serverInfoQuery from './graphql/serverInfo.gql'
|
||||||
import { onLogin } from './vue-apollo'
|
import { onLogin } from './vue-apollo'
|
||||||
import Login from "@/views/Login";
|
import Login from "@/views/Login";
|
||||||
|
import LegacyDialog from './components/dialogs/LegacyDialog.vue';
|
||||||
|
|
||||||
global.collectPreferences = function (preferences) {
|
global.collectPreferences = function (preferences) {
|
||||||
bus.$emit('update-preferences', preferences)
|
bus.$emit('update-preferences', preferences)
|
||||||
@@ -178,7 +180,8 @@ export default {
|
|||||||
CreateStreamDialog: () => import('@/components/dialogs/CreateStreamDialog'),
|
CreateStreamDialog: () => import('@/components/dialogs/CreateStreamDialog'),
|
||||||
SettingsDialog: () => import('@/components/dialogs/SettingsDialog'),
|
SettingsDialog: () => import('@/components/dialogs/SettingsDialog'),
|
||||||
GlobalToast: () => import('@/components/GlobalToast'),
|
GlobalToast: () => import('@/components/GlobalToast'),
|
||||||
Mapper: () => import('@/components/Mapper')
|
Mapper: () => import('@/components/Mapper'),
|
||||||
|
LegacyDialog: () => import('@/components/dialogs/LegacyDialog')
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
size: {
|
size: {
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
<template>
|
||||||
|
<v-dialog v-model="dialog" max-width="400">
|
||||||
|
<v-card>
|
||||||
|
<v-card-title class="headline">Legacy Version</v-card-title>
|
||||||
|
<v-card-text>
|
||||||
|
⚠️Warning: This is a legacy connector.
|
||||||
|
<br /><br />
|
||||||
|
<a
|
||||||
|
href="https://app.speckle.systems/connectors"
|
||||||
|
target="_blank"
|
||||||
|
style="color: #1976D2; text-decoration: none; font-weight: 500;"
|
||||||
|
>
|
||||||
|
Download next-gen SketchUp connector
|
||||||
|
</a>
|
||||||
|
</v-card-text>
|
||||||
|
<v-card-actions>
|
||||||
|
<v-spacer></v-spacer>
|
||||||
|
<v-btn color="grey" text @click="dialog = false">Dismiss</v-btn>
|
||||||
|
<v-btn color="primary" @click="downloadLatest">Download</v-btn>
|
||||||
|
</v-card-actions>
|
||||||
|
</v-card>
|
||||||
|
</v-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialog: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async downloadLatest() {
|
||||||
|
const response = await fetch(
|
||||||
|
`https://releases.speckle.dev/manager2/feeds/sketchup-v3.json`,
|
||||||
|
{
|
||||||
|
method: 'GET'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error('Failed to fetch versions')
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = await response.json()
|
||||||
|
const sortedVersions = data.Versions.sort(function (a, b) {
|
||||||
|
return new Date(b.Date).getTime() - new Date(a.Date).getTime()
|
||||||
|
})
|
||||||
|
const latestAvailableVersion = sortedVersions[0]
|
||||||
|
|
||||||
|
latestAvailableVersion.value = sortedVersions[0]
|
||||||
|
window.open(latestAvailableVersion.value?.Url)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
query Streams($cursor: String) {
|
|
||||||
streams(cursor: $cursor) {
|
|
||||||
totalCount
|
|
||||||
cursor
|
|
||||||
items {
|
|
||||||
id
|
|
||||||
name
|
|
||||||
description
|
|
||||||
role
|
|
||||||
isPublic
|
|
||||||
createdAt
|
|
||||||
updatedAt
|
|
||||||
collaborators {
|
|
||||||
id
|
|
||||||
name
|
|
||||||
company
|
|
||||||
avatar
|
|
||||||
role
|
|
||||||
}
|
|
||||||
commits(limit: 1) {
|
|
||||||
totalCount
|
|
||||||
items {
|
|
||||||
id
|
|
||||||
createdAt
|
|
||||||
message
|
|
||||||
authorId
|
|
||||||
branchName
|
|
||||||
authorName
|
|
||||||
authorAvatar
|
|
||||||
referencedObject
|
|
||||||
}
|
|
||||||
}
|
|
||||||
branches {
|
|
||||||
totalCount
|
|
||||||
items {
|
|
||||||
id
|
|
||||||
name
|
|
||||||
commits(limit: 10) {
|
|
||||||
totalCount
|
|
||||||
items {
|
|
||||||
id
|
|
||||||
createdAt
|
|
||||||
message
|
|
||||||
authorId
|
|
||||||
branchName
|
|
||||||
authorName
|
|
||||||
authorAvatar
|
|
||||||
referencedObject
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
query {
|
query {
|
||||||
user {
|
user:activeUser {
|
||||||
id
|
id
|
||||||
email
|
email
|
||||||
name
|
name
|
||||||
|
|||||||
@@ -1,13 +1,11 @@
|
|||||||
query User($id: String!) {
|
query User($id: String!) {
|
||||||
user(id: $id) {
|
user:otherUser(id: $id) {
|
||||||
id
|
id
|
||||||
email
|
|
||||||
name
|
name
|
||||||
bio
|
bio
|
||||||
company
|
company
|
||||||
avatar
|
avatar
|
||||||
verified
|
verified
|
||||||
profiles
|
|
||||||
role
|
role
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user