Идея небольшой утилитки

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Идея небольшой утилитки

Сообщение nkp »

конечно - чтоб непосредственно (напрямую) запускать сишные файлы нужно доработать скрипт ,
чтоб он брал путь файла исходника...
ну и тогда в фильтр прописать :
PROGRAM_EXTENSION = .c Script_Name
c = Script_Name
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Идея небольшой утилитки

Сообщение Serg »

nkp писал(а):#!bin/bash

gcc /home/nkp/emc2-dev-80db2a2/nc_files/45.c -o 45
./45
Правильней будет первой командой сделать

Код: Выделить всё

cd /home/nkp/emc2-dev-80db2a2/nc_files/
чтоб не "гадить" в непонятно каком каталоге. :)

Ну и вместо второй команды можно написать просто эффект будет тот-же. Хотя нет, будет более интеллектуальным. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
aaleksander
Мастер
Сообщения: 577
Зарегистрирован: 23 авг 2013, 18:04
Репутация: 118
Откуда: г. Ухта
Контактная информация:

Re: Идея небольшой утилитки

Сообщение aaleksander »

Cpp - это я для примера спросил. Так-то мне Haskell был нужен. У него оказывается ест runghc - выполняет код без компиляции и нигде не мусорит.
Переписываю помаленьку.
aaleksander
Мастер
Сообщения: 577
Зарегистрирован: 23 авг 2013, 18:04
Репутация: 118
Откуда: г. Ухта
Контактная информация:

Re: Идея небольшой утилитки

Сообщение aaleksander »

Сделал мощный рефакторинг и добавил перемычки
Перемычки добавляются с помощью метода "jump_point". В качестве параметров: ширина перемычек и массив с их положением. Положение задается в виде процентов от общей длины траектории.
В примере - четыре перемычки шириной 5мм.

Код: Выделить всё

     from meta import *
    v = Meta()

    v.point(20, 20,  rounding=3)
    v.point(30, 20,  rounding=3)
    v.point(30, 10,  rounding=3)
    v.point(45, 20,  radius=-3)
    v.point(60, 10,  radius=5)
    v.point(65, 40)
    v.point(20, 40,  rounding=3)

    v.jump_point(5, [15,  38,  70,  95]) #перемычки, толщиной 5 мм

    v.show(10) #показать плоскую траекторию в 10х кратном увеличении

    def f():
        F(300)
        G0(0, 0, 5)
        F(1000)
        x,  y =  v.get_first_position()
        G0(x, y)

        z = -3
        while z > -10:            
            v.to_gcode(z,  -7.5) #режем по траектории на глубине z. Если встречается перемычка, то поднимаемся до Z=-7.5
            z -= 1
        G0(Z=5)

    preview(f)
    export(f)
на предварительном просмотре мета-траектории, перемычки показаны толстыми зелеными линиями.

P.S. Просьба, не втыкать перемычки так, чтобы они пересекали начало траектории. Там недоработка :oops:
Вложения
3D просмотр (1948 просмотров) <a class='original' href='./download/file.php?id=24388&mode=view' target=_blank>Загрузить оригинал (15.94 КБ)</a>
3D просмотр
Снимок2.PNG (1948 просмотров) <a class='original' href='./download/file.php?id=24389&mode=view' target=_blank>Загрузить оригинал (23.43 КБ)</a>
aaleksander
Мастер
Сообщения: 577
Зарегистрирован: 23 авг 2013, 18:04
Репутация: 118
Откуда: г. Ухта
Контактная информация:

Re: Идея небольшой утилитки

Сообщение aaleksander »

У библиотеки появились шрифты! :cheesy:
Код (для просмотра содержимого нажмите на ссылку)
# -*- coding: utf-8 -*-
from py2gcode import *
from py2gcode.Fonts import arial

def f2():
G0(0, 0, 5)
font = get_font("arial")
t = TextTrajectory(font, "Иван Вячеславович")
sz = 5
t.grav(0, 0, -1, sz, 500, 3)
preview(f2)
результат:
Вложения
Снимок.PNG
Снимок.PNG (11.67 КБ) 1913 просмотров
aaleksander
Мастер
Сообщения: 577
Зарегистрирован: 23 авг 2013, 18:04
Репутация: 118
Откуда: г. Ухта
Контактная информация:

Re: Идея небольшой утилитки

Сообщение aaleksander »

У мета-траекторий добавился новый вид точек - подрезка углов. Это немного выходит из концепции "резинка на гвоздях", но в код вписалась органично.
Просто указываем, на сколько надо подрезать.
(для просмотра содержимого нажмите на ссылку)

Код: Выделить всё

    v = Meta()
    v.point(0, 0)
    v.point(200, 0)

    v.point(200, 70)
    v.point(170, 70, corner=3)
    v.point(170, 120, corner=3)
    v.point(200, 120)

    v.point(200, 200)
    v.point(0, 200)
    v.point(0, 120, corner=3)
    v.point(-30, 120)
    v.point(-30, 70)
    v.point(0, 70, corner=3)
Вложения
Снимок.PNG
Снимок.PNG (7.53 КБ) 1865 просмотров
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Идея небольшой утилитки

Сообщение Nick »

aaleksander писал(а):У мета-траекторий добавился новый вид точек - подрезка углов. Это немного выходит из концепции "резинка на гвоздях", но в код вписалась органично.
+1 - крутая штука! :good:!
aaleksander
Мастер
Сообщения: 577
Зарегистрирован: 23 авг 2013, 18:04
Репутация: 118
Откуда: г. Ухта
Контактная информация:

Re: Идея небольшой утилитки

Сообщение aaleksander »

Что-то один Ник комментирует.
Другим не интересно?
В каком формате вам хочется документацию?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Идея небольшой утилитки

Сообщение Nick »

aaleksander писал(а):В каком формате вам хочется документацию?
wiki/asciidoc :)
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Идея небольшой утилитки

Сообщение Serg »

aaleksander писал(а):Что-то один Ник комментирует.
Другим не интересно?
Я наблюдаю и записываюзапоминаю, как будет куда применить - воспользуюсь. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
aaleksander
Мастер
Сообщения: 577
Зарегистрирован: 23 авг 2013, 18:04
Репутация: 118
Откуда: г. Ухта
Контактная информация:

Re: Идея небольшой утилитки

Сообщение aaleksander »

UAVpilot писал(а):Я наблюдаю и запоминаю, как будет куда применить - воспользуюсь.
Снеси со своей машины все, кроме LCNC и сразу применение появится ;-)
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Идея небольшой утилитки

Сообщение Serg »

Вообще-то у меня на рабочем и домашнем компах года с 98 ничего кроме Unix/Linux не стояло... :tongue:
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Идея небольшой утилитки

Сообщение nkp »

UAVpilot писал(а):Вообще-то у меня на рабочем и домашнем компах года с 98 ничего кроме Unix/Linux не стояло...
что - win никогда-ни разу ??
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Идея небольшой утилитки

Сообщение Serg »

У жены на ноуте есть. Ну и у меня на служебном ноуте вроде остался раздел с win7, чтоб иногда чего-нибудь попробовать.

А, ну и в одной мериканской конторе есть доступ на их терминальный сервер для пользования ихней лицензией солидворкса, автокада и visio, чтоб можно было посмотреть чего заказчики понаприсылали. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: Идея небольшой утилитки

Сообщение Impartial »

aaleksander писал(а):Другим не интересно?
Интересно! А нельзя это все на на С или С++ переписать?
aaleksander
Мастер
Сообщения: 577
Зарегистрирован: 23 авг 2013, 18:04
Репутация: 118
Откуда: г. Ухта
Контактная информация:

Re: Идея небольшой утилитки

Сообщение aaleksander »

Impartial писал(а):Интересно! А нельзя это все на на С или С++ переписать?
А зачем? Питоновские файлы LCNC открывает из коробки. Т.е. что написал, то и открыл, нет этапа компиляции и лишних файлов не генерируется.
Питон очень простой и универсальный язык, изучи, не пожалеешь. К тому же с элементами функциональщины - частенько выручает.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Идея небольшой утилитки

Сообщение nkp »

Impartial писал(а):Интересно! А нельзя это все на на С или С++ переписать?
посмотри по ссылкам - это уже можно "потрогать" в емс:
http://git.linuxcnc.org/gitweb?p=linuxc ... 38cb3e67fe
http://www.mail-archive.com/emc-users@l ... 49450.html
http://www.vagrearg.org/content/gcmc
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: Идея небольшой утилитки

Сообщение Impartial »

nkp писал(а):посмотри по ссылкам - это уже можно "потрогать" в емс:
Честно говоря ничего не понял.Чем это отличается от постпроцессора КАМ?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Идея небольшой утилитки

Сообщение nkp »

поступил такой вопрс:
Impartial писал(а):А нельзя это все на на С или С++ переписать?
я показал реализацию подобного на си ...
Impartial писал(а):Чем это отличается от постпроцессора КАМ?
а чем надо чтоб отличалось? :)
============
может я и не то совсем дал в ссылках - уж очень тудно предугадать, что на самом деле требуется))
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: Идея небольшой утилитки

Сообщение Impartial »

nkp писал(а):я показал реализацию подобного на си ...
А, теперь понял.
Хочется найти такую программу, чтобы любой неподготовленный станочник мог задать параметры, например болта, и выточить не вдаваясь во всякие КАД системы. На форуме есть попытка реализации такой идеи, но она реализуется на питоне, а это применить где нибудь кроме ЕМС невозможно.
Ответить

Вернуться в «LinuxCNC»