This document provides instructions for setting up PyQt5 and Wing IDE for remote debugging Python code in Autodesk Maya 2018. It includes steps to compile SIP and PyQt5, set up PyCharm for remote debugging, and configure Wing IDE user hotkeys to send code between the IDE and Maya.
Horizon Zero Dawn: An Open World QA Case StudyGuerrilla
Download the full presentation here: http://www.guerrilla-games.com/
Abstract: A retrospective of how Developer (Guerrilla) and Publisher QA (SIE) worked together in partnership to help deliver a AAA experience. The presentation will focus on the victories and the challenges we faced as part of testing such an ambitious open-world title, and leveraging automated test solutions and telemetry to inform exploratory test strategy. The presentation will talk about how we managed teams over a 21 month testing lifecycle, with a team ranging from small internal test teams, before scaling up to a team of 70+ people across the globe with tens of thousands of test hours invested. The presentation will cover the successes and challenges relating to our people; early engagement, communication, trust, agility and collaboration. Our processes; risk management, test strategy, and post launch support, and our tools; Telemetry, Risk Registers, Worldwide build delivery.
Horizon Zero Dawn: An Open World QA Case StudyGuerrilla
Download the full presentation here: http://www.guerrilla-games.com/
Abstract: A retrospective of how Developer (Guerrilla) and Publisher QA (SIE) worked together in partnership to help deliver a AAA experience. The presentation will focus on the victories and the challenges we faced as part of testing such an ambitious open-world title, and leveraging automated test solutions and telemetry to inform exploratory test strategy. The presentation will talk about how we managed teams over a 21 month testing lifecycle, with a team ranging from small internal test teams, before scaling up to a team of 70+ people across the globe with tens of thousands of test hours invested. The presentation will cover the successes and challenges relating to our people; early engagement, communication, trust, agility and collaboration. Our processes; risk management, test strategy, and post launch support, and our tools; Telemetry, Risk Registers, Worldwide build delivery.
2018.03.19 판도라큐브 세미나
제작자: 기획 파트 한서현
코멘트: 없음
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
nota bab 5 sains tingkatan 2 yang telah diubahsuai daripada nota yang telah diperoleh dari sumber http://fizik-fizik.blogspot.com. Semoga ia memanfaatkan semua.
Epic Games Japan hold a meeting named "Lightmass Deep Dive" on July 30, 2016.
A Japanese architectural artist, Kenichi Makaya, created Casa Barragan on UE4. the architecture is a house of Mexican Architect, Luis Barragan. And he gave a presentation about making of the scene. .
CASA BARRAGAN Unreal Engine4
https://www.youtube.com/watch?v=Y7r28nO4iDU&feature=youtu.be
EGJ translated the slide for the presentation to English and published it.
2018.03.19 판도라큐브 세미나
제작자: 기획 파트 한서현
코멘트: 없음
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
nota bab 5 sains tingkatan 2 yang telah diubahsuai daripada nota yang telah diperoleh dari sumber http://fizik-fizik.blogspot.com. Semoga ia memanfaatkan semua.
Epic Games Japan hold a meeting named "Lightmass Deep Dive" on July 30, 2016.
A Japanese architectural artist, Kenichi Makaya, created Casa Barragan on UE4. the architecture is a house of Mexican Architect, Luis Barragan. And he gave a presentation about making of the scene. .
CASA BARRAGAN Unreal Engine4
https://www.youtube.com/watch?v=Y7r28nO4iDU&feature=youtu.be
EGJ translated the slide for the presentation to English and published it.
Learn how to automate your tests and integrate with your CI tool with 5 simple steps.
Check out the most simple and powerful test management platform in the cloud: https://hiptest.net
In this talk, we'll discover how Docker comes to the rescue of the Ops Team, while rebuilding from scratch our monitoring infrastructure. We'll start by quickly describing the challenges, to focus on why and how using docker saved the project. From fixing dependencies and isolation issues, implementing rolling upgrades and new features hot addition, to building a completely modular, scalable and resilient infrastructure, we'll talk about why CI/CD workflows, docker tooling and Docker Swarm were the key to success.
Slides from my DockerCon EU 2017 Talk.
Find the abstract below:
"In this talk, we'll discover how Docker comes to the rescue of the Ops Team, while rebuilding from scratch our monitoring infrastructure. We'll start by quickly describing the challenges, to focus on why and how using docker saved the project. From fixing dependencies and isolation issues, implementing rolling upgrades and new features hot addition, to building a completely modular, scalable and resilient infrastructure, we'll talk about why CI/CD workflows, docker tooling and Docker Swarm were the key to success."
Take your CI to the next level! Learn how to optimize your pipelines for faster and more efficient builds through parallelization, caching, failing early, and more.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
In this talk, Carlos de la Guardia shows how a Pyramid application can be deployed using a front end web server, like Apache or Nginx. He also covers how to automate deployment using buildout and a PyPI clone, and post-deployment creation of a variety of maintenance scripts and cron jobs that perform application specific tasks through Pyramid.
A link to audio of the presentation is here: http://2011ploneconference.sched.org/event/29a2f357905e4ab0fe3048c53bc1c94c
ContainerCon Europe 2016, Berlin: Talk by Mario-Leander Reimer (@LeanderReimer, Principal Software Architect at QAware).
Abstract: Cloud native applications are popular these days – applications that run in the cloud reliably und scale almost arbitrarily. They follow three key principles: they are built and composed as micro services. They are packaged and distributed in containers. The containers are executed dynamically in the cloud. Kubernetes is an open-source cluster manager for the automated deployment, scaling and management of cloud native applications. In this hands-on session we will introduce the core concepts of Kubernetes and then show how to build, package and operate a cloud native showcase application on top of Kubernetes step-by-step. Throughout this session we will be using an off-the-shelf MIDI controller to demonstrate and visualize the concepts and to remote control Kubernetes.
Cloud native applications are popular these days – applications that run in the cloud reliably und scale almost arbitrarily. They follow three key principles: they are built and composed as micro services. They are packaged and distributed in containers. The containers are executed dynamically in the cloud. Kubernetes is an open-source cluster manager for the automated deployment, scaling and management of cloud native applications. In this hands-on session we will introduce the core concepts of Kubernetes and then show how to build, package and operate a cloud native showcase application on top of Kubernetes step-by-step. Throughout this session we will be using an off-the-shelf MIDI controller to demonstrate and visualize the concepts and to remote control Kubernetes. This session has been presented at the ContainerCon Europe 2016 in Berlin. #qaware #cloudnativenerd #LinuxCon #ContainerCon
Presented at AI NEXTCon Seattle 1/17-20, 2018
http://aisea18.xnextcon.com
join our free online AI group with 50,000+ tech engineers to learn and practice AI technology, including: latest AI news, tech articles/blogs, tech talks, tutorial videos, and hands-on workshop/codelabs, on machine learning, deep learning, data science, etc..
[English][Test Girls] Zero to Hero: Start Test automation with CypressTest Girls
DevOpsDays Philadelphia 2019 presentation.
Zero to Hero: Start Test automation with Cypress
In DevOps world, test automation is a must have. But start coding could be challenging for people novice in tech and also for the ones working in manual testing (because someone said that testers don’t need technical skills)! In this “right to the point” workshop you’ll start your automation test project - easy and painlessly. It’ll give you knowledge to continue learning and practicing after.
Container Power Hour with Jess, Clare, and Abby (CON362) - AWS re:Invent 2018Amazon Web Services
Join Jess Frazelle, from GitHub, and Clare Liguori and Abby Fuller, from AWS, for a container power hour to kick off your re:Invent. In this session, learn how to use Git and GitHub to run your containers, and build, test, and deploy processes. GitOps and Actions and AWS Fargate—oh my! This session features a demo from Jess on using the new GitHub Actions to deploy to Fargate.
Substance user group in Shanghai Open day 2017 PPT share.
Original PPT here.
https://www.dropbox.com/s/3vs76eh1d32iwmb/substanceshanghaippt_repacked.ppsm?dl=0
Water billing management system project report.pdfKamal Acharya
Our project entitled “Water Billing Management System” aims is to generate Water bill with all the charges and penalty. Manual system that is employed is extremely laborious and quite inadequate. It only makes the process more difficult and hard.
The aim of our project is to develop a system that is meant to partially computerize the work performed in the Water Board like generating monthly Water bill, record of consuming unit of water, store record of the customer and previous unpaid record.
We used HTML/PHP as front end and MYSQL as back end for developing our project. HTML is primarily a visual design environment. We can create a android application by designing the form and that make up the user interface. Adding android application code to the form and the objects such as buttons and text boxes on them and adding any required support code in additional modular.
MySQL is free open source database that facilitates the effective management of the databases by connecting them to the software. It is a stable ,reliable and the powerful solution with the advanced features and advantages which are as follows: Data Security.MySQL is free open source database that facilitates the effective management of the databases by connecting them to the software.
Low power architecture of logic gates using adiabatic techniquesnooriasukmaningtyas
The growing significance of portable systems to limit power consumption in ultra-large-scale-integration chips of very high density, has recently led to rapid and inventive progresses in low-power design. The most effective technique is adiabatic logic circuit design in energy-efficient hardware. This paper presents two adiabatic approaches for the design of low power circuits, modified positive feedback adiabatic logic (modified PFAL) and the other is direct current diode based positive feedback adiabatic logic (DC-DB PFAL). Logic gates are the preliminary components in any digital circuit design. By improving the performance of basic gates, one can improvise the whole system performance. In this paper proposed circuit design of the low power architecture of OR/NOR, AND/NAND, and XOR/XNOR gates are presented using the said approaches and their results are analyzed for powerdissipation, delay, power-delay-product and rise time and compared with the other adiabatic techniques along with the conventional complementary metal oxide semiconductor (CMOS) designs reported in the literature. It has been found that the designs with DC-DB PFAL technique outperform with the percentage improvement of 65% for NOR gate and 7% for NAND gate and 34% for XNOR gate over the modified PFAL techniques at 10 MHz respectively.
Using recycled concrete aggregates (RCA) for pavements is crucial to achieving sustainability. Implementing RCA for new pavement can minimize carbon footprint, conserve natural resources, reduce harmful emissions, and lower life cycle costs. Compared to natural aggregate (NA), RCA pavement has fewer comprehensive studies and sustainability assessments.
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesChristina Lin
Traditionally, dealing with real-time data pipelines has involved significant overhead, even for straightforward tasks like data transformation or masking. However, in this talk, we’ll venture into the dynamic realm of WebAssembly (WASM) and discover how it can revolutionize the creation of stateless streaming pipelines within a Kafka (Redpanda) broker. These pipelines are adept at managing low-latency, high-data-volume scenarios.
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTjpsjournal1
The rivalry between prominent international actors for dominance over Central Asia's hydrocarbon
reserves and the ancient silk trade route, along with China's diplomatic endeavours in the area, has been
referred to as the "New Great Game." This research centres on the power struggle, considering
geopolitical, geostrategic, and geoeconomic variables. Topics including trade, political hegemony, oil
politics, and conventional and nontraditional security are all explored and explained by the researcher.
Using Mackinder's Heartland, Spykman Rimland, and Hegemonic Stability theories, examines China's role
in Central Asia. This study adheres to the empirical epistemological method and has taken care of
objectivity. This study analyze primary and secondary research documents critically to elaborate role of
china’s geo economic outreach in central Asian countries and its future prospect. China is thriving in trade,
pipeline politics, and winning states, according to this study, thanks to important instruments like the
Shanghai Cooperation Organisation and the Belt and Road Economic Initiative. According to this study,
China is seeing significant success in commerce, pipeline politics, and gaining influence on other
governments. This success may be attributed to the effective utilisation of key tools such as the Shanghai
Cooperation Organisation and the Belt and Road Economic Initiative.
2. 1. Compile to sip with PyQt5.
2. How to setting up When you using PyCharm.
3. WING IDE
Overview
3. List of Equipment.
PyQt5 build
Python 2.7.11
SIP 4.19.4
PyQt gpl 5.9.1
Install script as command script
Visual studio 2015 or 2017 as visual studio command prompt.
PyCharm IDE setup for Maya
MayaCharm
python connection of open port script
python connection of remote debug open port script
VSCode Setup for Maya
PTVSD 3.0.0
VSCode python extension
Overview
5. Install python version of 2.7.11
• https://www.python.org/downloads/release/python-2711/
1. Compile to sip with PyQt5.
6. Make Symbolic python.exe mayapy.exe
1. Compile to sip with PyQt5.
1. Run the command console as administrator.
2. Go to “C:Program FilesAutodeskMaya2018bin”
3. Command : mklink python.exe mayapy.exe
7. Install to Autodesk® Maya 2018 - Developer Kit
(aka devkit)
• https://apps.autodesk.com/MAYA/en/Detail/Index?id=552549163637
6351277&appLang=en&os=Win64&autostart=true
1. Compile to sip with PyQt5.
8. Install to Autodesk® Maya 2018 - Developer Kit
(aka devkit)
• List of Replacement directory
• All directory of devkitBase to MayaRoot
1. Compile to sip with PyQt5.
9. Install to Autodesk® Maya 2018 - Developer Kit
(aka devkit)
• C:Program FilesAutodeskMaya2018devkit
1. Compile to sip with PyQt5.
11. Your Maya environments path
https://knowledge.autodesk.com/support/maya/learn-
explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-228CCA33-4AFE-4380-8C3D-
18D23F7EAC72-htm.html
MAYA_LOCATION
C:Program FilesAutodeskMaya2018
1. Compile to sip with PyQt5.
12. Building to SIP
• Check to exist this bat file as vcvarsall.bat
1. Compile to sip with PyQt5.
13. Create setup.bat
1. Compile to sip with PyQt5.
@echo off
set MAYAVERSION=2018
set ADSKQTVERSION=5.6.1
set SIPVERSION=4.19.4
set PYQTVERSION=5.9.1
set MAYADRIVE=m:
set BUILDDRIVE=v:
if exist %MAYADRIVE%nul subst %MAYADRIVE% /d
subst %MAYADRIVE% "C:Program FilesAutodeskMaya%MAYAVERSION%"
set MAYA_LOCATION=%MAYADRIVE%
set MAYAPYQTBUILD=%~dp0
rem Removing trailing
set MAYAPYQTBUILD=%MAYAPYQTBUILD:~0,-1%
if exist %BUILDDRIVE%nul subst %BUILDDRIVE% /d
subst %BUILDDRIVE% "%MAYAPYQTBUILD%"
set SIPDIR=%BUILDDRIVE%sip-%SIPVERSION%
set PYQTDIR=%BUILDDRIVE%PyQt5_gpl-%PYQTVERSION%
rem set ADSKQTDIR=%BUILDDRIVE%qt-%ADSKQTVERSION%
set QTDIR=%MAYA_LOCATION%
set PATH=%QTDIR%bin;%PATH%
set MSVC_VERSION=2015
set MSVC_DIR=C:Program Files (x86)Microsoft Visual Studio 14.0
set QMAKESPEC=%QTDIR%mkspecswin32-msvc%MSVC_VERSION%
set _QMAKESPEC_=win32-msvc%MSVC_VERSION%
if ["%LIBPATH%"]==[""] call "%MSVC_DIR%VCvcvarsall" amd64
set INCLUDE=%INCLUDE%;%MAYA_LOCATION%includepython2.7
set LIB=%LIB%;%MAYA_LOCATION%lib
14. Building to SIP
• Download to sip-4.19.4
• https://sourceforge.net/projects/pyqt/files/sip/sip-4.19.4/
• Create new directory as name of __sdkext into your “D” drive.
D:__sdkext
Uncompress sip-4.19.4 into __sdkext foler.
1. Compile to sip with PyQt5.
15. Building to SIP
• Create sip.bat
1. Compile to sip with PyQt5.
@echo off
set XXX=%~dp0
if ["%MAYAPYQTBUILD%"]==[""] call
"%XXX%setup.bat"
pushd %SIPDIR%
rem "%MAYA_LOCATION%binmayapy" configure-
ng.py --spec %_QMAKESPEC_%
"%MAYA_LOCATION%binmayapy" configure.py
nmake
nmake install
popd
16. Building to SIP
• Install to Visual studio 2015 or 2017
• Run to visual studio command prompt as administrator mode.
1. Compile to sip with PyQt5.
17. Building to SIP
• Go to your __sdkext in command prompt.
1. Compile to sip with PyQt5.
18. Building to SIP
• Execute setup.bat in command prompt
• Execute sip.bat
1. Compile to sip with PyQt5.
• Checking to import sip in Maya2018
19. Building to PyQt5
• Download PyQt5 source code.
• https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.9.1/
1. Compile to sip with PyQt5.
20. Building to PyQt5
• Create pyqt.bat
1. Compile to sip with PyQt5.
@echo off
set XXX=%~dp0
if ["%MAYAPYQTBUILD%"]==[""] call "%XXX%setup.bat"
set QMAKESPEC=%QTDIR%mkspecs%_QMAKESPEC_%
if not exist "%QMAKESPEC%qmake.conf" (
echo "You need to uncompress %MAYA_LOCATION%mkspecsqt-5.6.1_vc14-mkspecs.tar.gz !"
goto end
)
if not exist "%MAYA_LOCATION%includeQtQtCoreqdir.h" (
echo "You need to uncompress %MAYA_LOCATION%includeqt-5.6.1_vc14-include.tar.gz in %MAYA_LOCATION%includeQt !"
goto end
)
findstr /L /C:"Headers=include/Qt" "%MAYA_LOCATION%binqt.conf" >nul 2>&1
if ERRORLEVEL 1 (
echo "You need to edit %MAYA_LOCATION%binqt.conf to use 'Headers=include/Qt'"
goto end
)
findstr /L /C:"-lqtmain -lshell32" "%QTDIR%mkspecscommonmsvc-desktop.conf" >nul 2>&1
if ERRORLEVEL 1 (
echo "You need to edit %QTDIR%mkspecscommonmsvc-desktop.conf to use 'QMAKE_LIBS_QT_ENTRY = -lqtmain -lshell32'"
goto end
)
if not exist "%MAYA_LOCATION%includeQtqtnfc.disabled" (
echo "You need to rename %MAYA_LOCATION%includeQtqtnfc to %MAYA_LOCATIONincludeQtqtnfc.disabled"
goto end
)
pushd %PYQTDIR%
rem "%MAYA_LOCATION%binmayapy" configure-ng.py --spec %_QMAKESPEC_%
"%MAYA_LOCATION%binmayapy" configure.py --spec %QMAKESPEC% LIBDIR_QT="%QTDIR%lib" INCDIR_QT="%QTDIR%includeQt" MOC="%QTDIR%binmoc.exe" --
sip="%QTDIR%Pythonsip.exe" --sip-incdir="%QTDIR%Pythoninclude" -w --no-designer-plugin
nmake
nmake install
popd
:end
21. Building to PyQt5
• Must check item.
1. Compile to sip with PyQt5.
"You need to rename %MAYA_LOCATION%includeQtqtnfc to %MAYA_LOCATIONincludeQtqtnfc.disabled"
C:Program FilesAutodeskMaya2018includeQtqtnfc
Folder name to qtfnc.disabled
"You need to edit %QTDIR%mkspecscommonmsvc-desktop.conf to use 'QMAKE_LIBS_QT_ENTRY = -lqtmain -lshell32'"
22. Building to PyQt5
• Build to PyQt5 via visual studio command prompt.
• Asking to license about python then just type to “yes”.
1. Compile to sip with PyQt5.
23. Building to PyQt5
• Testing PyQt5 in Maya2018.
1. Compile to sip with PyQt5.
24. • Testing PyQt5 in Maya2018.
1. Compile to sip with PyQt5.
import sys
from PyQt5.QtWidgets import (QWidget, QToolTip, QPushButton)
from PyQt5.QtGui import QFont
class Example(QWidget):
def __init__(self):
super(Example,self).__init__()
self.initUI()
def initUI(self):
QToolTip.setFont(QFont('SansSerif', 10))
self.setToolTip('This is a <b>QWidget</b> widget')
btn = QPushButton('Button', self)
btn.setToolTip('This is a <b>QPushButton</b> widget')
btn.resize(btn.sizeHint())
btn.move(50, 50)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Tooltips')
self.show()
ex = Example()
26. Connecting to port
• import maya.cmds as cmds
• if not cmds.commandPort(':4434', q=True):
• cmds.commandPort(n=':4434')
2. How to setting up When you using pycharm.
27. Installing to MAYA CHARM.
Using Alt+F7 to open properties window then go to Plugins.
Go to Browse repositories.
Searching to MayaCharm then install.
2. How to setting up When you using pycharm.
28. Copy script then using into the Maya.
import maya.cmds as cmds
if not cmds.commandPort(':4434', q=True):
cmds.commandPort(n=':4434')
2. How to setting up When you using pycharm.
29. Select to interpreter from maya bin folder as python.exe
Already We make link via mklink command between python and mayapy
2. How to setting up When you using pycharm.
30. Additional setup your interpreter.
Go to More… then organizing to Interpreter path like below.
2. How to setting up When you using PyCharm.
31. MayaCharm Python Remote debugger setting.
Go to “Run” then open to “Edit Configurations…”
2. How to setting up When you using PyCharm.
32. MayaCharm Python Remote debugger setting.
Adding to new configuration of MayaCharm Debugger
2. How to setting up When you using PyCharm.
33. MayaCharm Python Remote debugger setting.
Execute Debug Maya2018 via Alt + F5
2. How to setting up When you using PyCharm.
37. 1. Click to lower left side small bug icon then enable to Accept debug connections.
2. Execute connection code via simple python code below.
3. WING IDE FOR MAYA.
import wingdbstub
reload(wingdbstub)
try:
wingdbstub.Ensure()
print 'Connected to WingIDE 6.0'
except ValueError:
print 'Could NOT connect to wingIDE'
38. Create server script into your %MAYA_SCRIPT_PATH%
mayaWingServer.py
3. WING IDE FOR MAYA.
import sys
import socket
import threading
import maya.utils as mu
import maya.OpenMaya as om
import executeWingCode
#Global variables
PORT = 6000 # Needs to be the same value as authored in wingHotkeys.py below.
SIZE = 1024
BACKLOG = 5
#Functions
def processDataInMaya(data):
try:
# If we don't evaluate in maya.util.executeInMainThreadWithResult(), Maya can crash, and that's no good.
mu.executeInMainThreadWithResult(executeWingCode.main, data)
except Exception, e:
om.MGlobal.displayError('Encountered exception: %s'%e)
def server(processFunc=processDataInMaya, port=PORT, backlog=BACKLOG, size=SIZE):
host = ''
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind((host,port))
except:
print 'Tried to open port %s, but failed: Its probably already openn'%port
return
s.listen(backlog)
print 'Starting Python server, listening on port %s...n'%port
while True:
client, address = s.accept() # client is a socket object
data = client.recv(size)
if data:
processFunc(data)
client.close()
def startServer():
threading.Thread(target=server).start()
39. Start python server via simple python script at below.
3. WING IDE FOR MAYA.
import maya.cmds as cmds
cmds.evalDeferred('import mayaWingServer; mayaWingServer.startServer()', lowestPriority=True)
40. Configuration of User hot key
3. WING IDE FOR MAYA.
Create wingHotkeys.py into ‘C:Users<your_username>AppDataRoamingWing IDE 6scripts‘
import wingapi
import socket
import os
import tempfile
def getWingText():
editor = wingapi.gApplication.GetActiveEditor()
if editor is None:
return
doc = editor.GetDocument()
start, end = editor.GetSelection()
txt = doc.GetCharRange(start, end)
return txt
def send_to_maya(language):
# The port the sever is listening on in mayaWingServer.py :
commandPort = 6000
if language != 'mel' and language != 'python':
raise ValueError('Expecting either 'mel' or 'python'')
txt = getWingText()
if language == 'mel':
if not txt.endswith(';'):
txt += ';'
# Cross-platform way to get a temp dir:
tempDir = tempfile.gettempdir()
tempFile = os.path.join(tempDir, 'wingData.txt')
f = open(tempFile, 'w')
f.write(txt)
f.close()
mSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # works in 2013...
# Now ping Maya over the command-port
try:
mSocket.connect(('localhost', commandPort)) # 2016, mac
# Send our code to Maya:
# It is intercepted via the function processDataInMaya(), created via mayaWingServer.py
mSocket.send(language)
except Exception, e:
print 'Send to Maya fail:', e
mSocket.close()
def python_to_maya():
send_to_maya('python')
def mel_to_maya():
send_to_maya('mel')
41. Configuration of User hot key
3. WING IDE FOR MAYA.
Create executeWingCode.py into %MAYA_SCRIPT_PATH%
import __main__
import os
import tempfile
import maya.OpenMaya as om
def main(codeType):
# Cross-platform way to get a temp dir:
tempDir = tempfile.gettempdir()
tempFile = os.path.join(tempDir, 'wingData.txt').replace('', '/')
if os.access(tempFile , os.F_OK):
# Print the lines from the file in Maya:
with open(tempFile, 'r') as f:
for line in f.readlines():
print line.rstrip()
print 'n',
if codeType == 'python':
# execute the file contents in Maya:
with open(tempFile , 'r') as f:
exec(f, __main__.__dict__, __main__.__dict__)
elif codeType == 'mel':
melCmd = 'source %s'%tempFile
om.MGlobal.executeCommand(melCmd, True, True)
else:
print 'No Wing-generated temp file exists: ' + tempFile
42. Configuration of User hot key
3. WING IDE FOR MAYA.
Go to Keyboard Personality -> Configure Tab Key…
Press to Insert then set up to Key with Command.
Command is ‘python_to_maya’
43. Configuration of User hot key
3. WING IDE FOR MAYA.
Go to Maya command line to type to code at below because When you receive from Wing-Ide that must open port local
host with port of 6000.
cmds.commandPort(name="127.0.0.1:6000", close=True, echoOutput=True)
cmds.commandPort(name="127.0.0.1:6000", close=True, echoOutput=True)
Closing port command at below
44. Configuration of User hot key
3. WING IDE FOR MAYA.
Execution test
import maya.cmds as cmds
cmds.polySphere(r=5)
45. Auto Complete.
3. WING IDE FOR MAYA.
Go to ‘Edit > Preferences > Source Analysis’
In the ‘Interface File Path‘, add the ‘pi‘ folder you find inside the pymel you just extracted. TO be
precise, it can be found in ’devkit/other/pymel/extras/completion/py’. For added measure, I added
both sub-folders inside the pi folder as well.