Си - сложный язык по сравнению с автолиспом
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Си - сложный язык по сравнению с автолиспом

Си - сложный язык по сравнению с автолиспом

Ответ
Поиск в этой теме
Непрочитано 21.06.2012, 23:58 #1
Си - сложный язык по сравнению с автолиспом
C# ученик
 
Проектирование несущих строительных конструкций
 
Москва
Регистрация: 21.06.2012
Сообщений: 9

Можно объявить переменную с именем, связанным с результатом вычислений? Например получена точка P со значением (17.6,1.2,3.9) и создать переменную с именем x17_6y1_2z3_9?
Это нужно для выявления совпадающих элементов, чтобы не перебирать много раз список
Просмотров: 6944
 
Непрочитано 22.06.2012, 00:22
#2
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от C# ученик Посмотреть сообщение
Можно объявить переменную с именем, связанным с результатом вычислений? Например получена точка P со значением (17.6,1.2,3.9) и создать переменную с именем x17_6y1_2z3_9?
Это нужно для выявления совпадающих элементов, чтобы не перебирать много раз список
C# != C.
Не занимайся извращениями - открой для себя IDictionary<Point3d, Int32> и будет тебе счастье. В качестве ключа - точка, в качестве значения - количество совпадений. Хотя... уточни насчёт "совпадающих элементов"... Тебе количество совпадений нужно, или сгруппированные идентификаторы объектов, у которых нужная тебе точка совпадает?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 22.06.2012 в 00:28.
hwd вне форума  
 
Непрочитано 22.06.2012, 01:23
#3
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от C# ученик Посмотреть сообщение
Например получена точка P со значением (17.6,1.2,3.9) и создать переменную с именем x17_6y1_2z3_9?
Ага типо - если забудете мой номер телефона - он на странице 657472848272788992014782 в 478577838 строке. Прочитайте (нормально) хоть одну книжку по программированию - ОТКУДА Вы такое взяли.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 22.06.2012, 08:26
#4
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от C# ученик Посмотреть сообщение
создать переменную с именем x17_6y1_2z3_9?
Цитата:
(IF (NOT 38d0bab0-107e-11dd-bd0b-0800200c9a66)
(PROGN
(PRINC "\nDocTabs.DRX")
(ARXLOAD "./support/DocTabs.DRX")
(SETQ 38d0bab0-107e-11dd-bd0b-0800200c9a66 T)
)
)
а вы говорите си, си...
gomer вне форума  
 
Автор темы   Непрочитано 23.06.2012, 00:40
#5
C# ученик

Проектирование несущих строительных конструкций
 
Регистрация: 21.06.2012
Москва
Сообщений: 9


Вот, для чего это нужно

Есть намерение сделать МКЭ для строительной механики: пре- и постпроцессоры реализовать в автокаде с использованием
lsp файлов, а расчетное ядро сделать отдельным exe, общение .exe-шника с автокадом через .txt файлы, записываемые
и читаемые через жесткий диск.

Первые наработки

lsp для подготовки геометрии в автокаде, списков узлов, элементов, ребер, связей, сил (связи и силы еще не
сделаны). Вот здесь была трудность - как составить соответствие, например, узлов. После вычленения из набора примитивов
очередного узла, как выяснить, этот узел новый, или с такими координатами узел уже есть в списке. На каждом шаге перебирать
все имеющиеся в списке на данный момент узлы, это слишком долго для автокада (проверено на практике). Тогда я сделал
хитрушку с использованием (eval (read "....")), где в строку собирается выражение (setq ... ...). И в процессе выполнения программы,
таким образом, можно создавать переменные с именами, являющимися результатом вычислений. Не только значение переменной
является результатом вычислений, но и ее ИМЯ. При таком инструменте можно обработать набор узлов с отбраковкой
повторяющихся не за ~ n*n/4, а за ОДИН проход, т. е. за n операций. Берем очередной узел из набора, создаем строку, связанную
с координатами узла, например "nameXYZ" (X, Y, Z - конкретные числа), и проверяем значение переменной nameXYZ. Если
значение nil, то nameXYZ присваивается значение 1, и в список узлов записывается очередной узел. Работает быстрее, обработка
1000 элементов занимает 50 сек. В приложенном файле примера есть схема. В lsp есть функция po, она создает списки (глобальные
переменные) su, se, sr, sre, списки узлов, элементов, ребер, соответствие ребер и элементов соответственно.

Вопрос в том, может такие операции лучше делать методами языка СИ?
Или если в этом языке такой возможности нет, то простой перебор в exe файле все равно будет быстрее, чем данный lsp?Пример схемы.dwgПодготовка.LSP
C# ученик вне форума  
 
Непрочитано 23.06.2012, 00:55
#6
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


зачем преобразовывать в строку, а потом читать из нее данные???
gomer вне форума  
 
Непрочитано 23.06.2012, 01:20
#7
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от C# ученик Посмотреть сообщение
На каждом шаге перебирать все имеющиеся в списке на данный момент узлы, это слишком долго для автокада (проверено на практике)... Работает быстрее, обработка 1000 элементов занимает 50 сек.
Боюсь спросить сколько тогда медленно? Я более чем уверен, что ты просто накосячил с алгоритмом - распиши что тебе нужно сделать быстро (входные и выходные данные там где загвоздка), ну можещь и свой список привести из 1000 элементов - посмотрим за сколько секунд его удастся обработать.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 23.06.2012, 06:50
#8
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
(eval (read "....")), где в строку собирается выражение (setq ... ...). И в процессе выполнения программы,
таким образом, можно создавать переменные с именами, являющимися результатом вычислений
...
Цитата:
Вопрос в том, может такие операции лучше делать методами языка СИ?
Таких методов нет. Т.е. нельзя по строковому имени переменной получать значение. Но есть другие методы, не хуже.

Дима_ прав - явные косяки с алгоритмом. Зачем вообще переборы? Про ассоциированные списки в Lisp знаешь? Ведь сам AutoCAD очень быстро выдает запрошенные данные, и не перебирает свою ГБД. Ассоциированный список - это же фактически индексированная таблица в памяти.

Если уж задача с обработкой больших объемов данных, которые надо по сути отбирать по какому-то фильтру, да ещё из идеологически противоположных программных систем, можно воспользоваться СУБД. Хотя бы просто (для начала) локальный mdb-файл формата Access. Lisp с ним может работать через ADO посредством SQL-запросов. Данные можно отбирать (из любой системы программирования) также с помощью SQL. Да еще и визуализировать. Объем данных ничем не ограничен, всё выполняется практически мгновенно (если речь не о миллионах записей). И хранятся данные не в памяти, т.е. можно продолжать их обработку в любое время.

Наглядный пример быстроты - хотя бы этот форум. Щелкнув по ссылке на этот пост мы передаем в командную строку браузера запрос наподобие
Код:
[Выделить все]
showthread.php?p=937126#post937126
. Веб сервер разбирает эту строку, вытаскивает из неё параметры и отправляет серверу БД SQL-запрос наподобие
Код:
[Выделить все]
select * ftom posts where post_id = 937126
(здесь имя таблицы и поля я от балды написал). Сервер БД отдает результаты Веб-серверу, а Веб-сервер - браузеру. И всё это происходит чрезвычайно быстро, хотя 99.9% времени тратится не на выборку данных из сотен тысяч записей, а на их преобразование в HTML и транспортировку через Интернет. Сам запрос (если включить отладочную информацию) выполняется за сотые доли секунды. И это при сотнях тысяч (а может уже и миллионах) записей в базе данных.

Последний раз редактировалось ShaggyDoc, 23.06.2012 в 07:02.
ShaggyDoc вне форума  
 
Непрочитано 23.06.2012, 23:45
#9
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Ассоциированный список - это же фактически индексированная таблица в памяти.
Стоп стоп - не путайте человека - индексации ассоацивных списков нет - ищет перебором - хотя конечно делает это достаточно быстро - т.к. в памяти.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 24.06.2012, 18:37
#10
C# ученик

Проектирование несущих строительных конструкций
 
Регистрация: 21.06.2012
Москва
Сообщений: 9


Подкажите, есть ли в C# возможность allocatable (не оговаривать жестко размер) для массивов? Нашел только массив типа a[][], но для него строки хотя и разной длины, но их размеры тоже оговорить надо.
C# ученик вне форума  
 
Непрочитано 24.06.2012, 19:23
#11
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от C# ученик Посмотреть сообщение
Подкажите, есть ли в C# возможность allocatable (не оговаривать жестко размер) для массивов?
Есть. Почитай спецификацию языка.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 25.06.2012, 00:30
#12
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от C# ученик Посмотреть сообщение
.
Можно посмотреть примеры здесь
http://through-the-interface.typepad.com/
http://drive-cad-with-code.blogspot....h-net-api.html
http://adndevblog.typepad.com/autocad/
http://www.acadnetwork.com/
http://profile.typepad.com/spiderinnet1

~'o'~

Последний раз редактировалось Олег (jr.), 25.06.2012 в 00:47.
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 07.07.2012, 22:32
#13
C# ученик

Проектирование несущих строительных конструкций
 
Регистрация: 21.06.2012
Москва
Сообщений: 9


Подскажите, почему не получается сделать запись в файл?
Файл создается, но остается пустым после выполнения программы.
Фрагмент в программе такой:

char a;
a = 'N';

FileStream file1;
file1 = new FileStream("D:\\text1.txt", FileMode.Create, FileAccess.Write);
StreamWriter fs = new StreamWriter(file1);

fs.Write(a);
fs.Write(1456.15);
fs.Write("sdf2");
C# ученик вне форума  
 
Непрочитано 07.07.2012, 22:36
#14
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от C# ученик Посмотреть сообщение
Подскажите, почему не получается сделать запись в файл?
Файл создается, но остается пустым после выполнения программы.
Фрагмент в программе такой:

char a;
a = 'N';

FileStream file1;
file1 = new FileStream("D:\\text1.txt", FileMode.Create, FileAccess.Write);
StreamWriter fs = new StreamWriter(file1);

fs.Write(a);
fs.Write(1456.15);
fs.Write("sdf2");
по теме Си тебе следует задавать вопросы на форуме программистов, а не на двг.ру. По поводу твоего "кода": не забывай вызывать Flush(), Close() и Dispose(). Букварь открой. Да и вообще у тебя какая-то ерунда написана. Разберись по книжке как с потоками работать, а не гадай...

Самый простой способ записи текста в файл:
Цитата:
File.WriteAllText(@"c:\test\MyTextFile.txt", "Раз, два, три - проверка связи...", Encoding.UTF8);
Строки для записи формируй не конкатенацией (это медленно и затратно по ресурсам), а с помощью StringBuilder. Подробности - в гугле.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 07.07.2012 в 22:44.
hwd вне форума  
 
Автор темы   Непрочитано 07.07.2012, 22:51
#15
C# ученик

Проектирование несущих строительных конструкций
 
Регистрация: 21.06.2012
Москва
Сообщений: 9


а у меня следующей строкой как раз и стоит

file1.Close();

Разве этого не достаточно?

Flush() только освобождает буфер, и к файлу не имеет отношения.
На счет Displose() еще не знаю
C# ученик вне форума  
 
Непрочитано 07.07.2012, 22:57
#16
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от C# ученик Посмотреть сообщение
а у меня следующей строкой как раз и стоит
file1.Close();
Я не телепат - вижу только то, что ты показываешь.
Цитата:
Сообщение от C# ученик Посмотреть сообщение
Разве этого не достаточно?
Не достаточно.
Цитата:
Сообщение от C# ученик Посмотреть сообщение
Flush() только освобождает буфер, и к файлу не имеет отношения.
Ну ну...

Цитата:
Сообщение от C# ученик Посмотреть сообщение
На счет Displose() еще не знаю
Ну так узнай.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 07.07.2012, 23:14
#17
C# ученик

Проектирование несущих строительных конструкций
 
Регистрация: 21.06.2012
Москва
Сообщений: 9


Вот эта строка
File.WriteAllText(@"c:\test\MyTextFile.txt", "Раз, два, три - проверка связи...", Encoding.UTF8);
работает как часы, только не совсем как я хотел.
Она вместо всего, что уже есть в файле, записывает что в кавычках. Вот если бы добавлять запись
C# ученик вне форума  
 
Непрочитано 07.07.2012, 23:19
#18
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от C# ученик Посмотреть сообщение
Вот эта строка
File.WriteAllText(@"c:\test\MyTextFile.txt", "Раз, два, три - проверка связи...", Encoding.UTF8);
работает как часы, только не совсем как я хотел.
Она вместо всего, что уже есть в файле, записывает что в кавычках. Вот если бы добавлять запись
Если тебе нужно добавлять к уже существующей информации, то юзай
Код:
[Выделить все]
File.AppendAllText(@"c:\test\MyTextFile.txt", "Раз, два, три - проверка связи...", Encoding.UTF8);
Не ленись юзать поиск, эта информация находится на раз!
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 08.07.2012, 01:26
#19
C# ученик

Проектирование несущих строительных конструкций
 
Регистрация: 21.06.2012
Москва
Сообщений: 9


Цитата:
Сообщение от hwd Посмотреть сообщение
не забывай вызывать Flush(), Close() и Dispose()
можешь на примере моего кода показать как их использовать? Я написал file1.Flush(); file1.Close(); file1.Dilpose(); но это не помогло. В справке нет примера, сказано только для чего они, но это просто определения. А в спецификации языка в содержании я не нашел главы как общаться с файлами. У меня книга Э.А.Ишкова "C# Начала программирования", это от туда методика записи в файл FileStream, StreamWriter, Write. И Flush и Dispose там не использовались
C# ученик вне форума  
 
Непрочитано 08.07.2012, 11:51
1 | #20
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Попробуй из моих старых запасов
Код:
[Выделить все]
        public static void AppendLines()
        {
            // Путь файла для добавления
            FileStream fs = new FileStream(@"MyText.txt", FileMode.Open);

            StreamReader sr = new StreamReader(fs);
            // Путь временного файла куда добавляем текст
            FileStream fw = new FileStream(@"MyText_addded.txt", FileMode.Create);

            StreamWriter sw = new StreamWriter(fw);
            try
            {
                using (sr)
                {
                    using (sw)
                    {

                        StringBuilder sb = new StringBuilder();

                        string data = sr.ReadToEnd();
                        // Считываем файл в массив строк
                        string[] text = data.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
                        // Добавляем текст в StringBuilder
                        foreach (string str in text)
                            sb.Append(str + "\n");
                        // Строка которую добавляем
                        sb.AppendLine("New text line to append is follows here");

                        sw.Write(sb.ToString());

                    }
                }
                // Создаем бэкап для сохранения исходного файла, мало ли что
                File.Replace(@"MyText_addded.txt", @"MyText.txt", @"MyText_backup.txt");
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message + "\n" + ex.StackTrace);
            }
            finally
            {
                fw.Close();
                fs.Close();
            }
        }
~'o'~
Олег (jr.) вне форума  
 
Непрочитано 08.07.2012, 12:37
#21
rossecorp


 
Регистрация: 14.06.2011
Сообщений: 47


Очень здорово. Мне помогло с созданием Backup. Искал пути сложнее, но так будет проще, красивее и наверное правильнее.
rossecorp вне форума  
 
Непрочитано 08.07.2012, 15:20
#22
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


2 C# ученик
Если используешь блок usung(...){...}, то нет необходимости вызвать для объекта, инициализированного в скобках, методы Close и Dispose, т.к. Dispose вызывается автоматом, а в его коде вызывается Close. Метод Flush нужно обязательно вызывать перед закрытием, если вручную прописываешь Dispose, либо перед закрывающей "}" блока using. Это следует делать, т.к. на самом деле в поток информация записывается определёнными порциями. Если ты вызвал Write*** или Append*** нет никаких гарантий, что в поток будет записано сразу всё. Часть информации может быть оставлена "на потом", чтобы записаться со следующей порцией информации. Вызывая метод Flush ты тем самым даёшь команду записать всё, что сейчас имеется.

Научись не бездумно копировать ведро кода, скинутого тебе, а понимать, что ты делаешь, и как это на самом деле работает... Код из #20 содержит в себе ненужное велосипедостроение, без которого можно было свободно обойтись всего несколькими строками кода.

UPD
Разжёванную информацию по теме ты найдёшь в книгах Шилдта и Троелсена (на выбор).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 08.07.2012 в 15:33.
hwd вне форума  
 
Автор темы   Непрочитано 08.07.2012, 21:57
#23
C# ученик

Проектирование несущих строительных конструкций
 
Регистрация: 21.06.2012
Москва
Сообщений: 9


Народ! если кто решает на C# простые задачи строительной механики, то рекомендую делать запись вектора чисел в файл так:

Код:
[Выделить все]
 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        public static void Main()
        {
            
            StreamWriter f1 = new StreamWriter("D:\\text_prob1.txt", true);

            f1.WriteLine("0.312504");
            f1.WriteLine("0.706728");
            f1.WriteLine("-0.153056");
            f1.WriteLine("0.405974");
          
            f1.Close();
                
            }
        }
    }
Проверено, работает. Все числа записываются каждое на отдельной строке! Потом в автолиспе такой файл удобно будет считывать

Последний раз редактировалось Кулик Алексей aka kpblc, 08.07.2012 в 22:02.
C# ученик вне форума  
 
Непрочитано 08.07.2012, 22:19
#24
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от C# ученик Посмотреть сообщение
то рекомендую делать так
пациент безнадёжен
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 08.07.2012, 22:20
#25
iostex

MASH_STROY конструктор
 
Регистрация: 17.06.2009
SAMARA
Сообщений: 345
Отправить сообщение для iostex с помощью Yahoo


Меня всегда удивляло то, что с помощью автолисп и др. языков программирования, из автокада пытаются строить солидворкс, катию, ю г, тот же инвентор и прочие продукты, которые уже разработаны. Ну зачем вам все это надо?..
__________________
iostex
iostex вне форума  
 
Непрочитано 09.07.2012, 10:30
#26
rossecorp


 
Регистрация: 14.06.2011
Сообщений: 47


Цитата:
Сообщение от C# ученик Посмотреть сообщение
Народ! если кто решает на C# простые задачи строительной механики, то рекомендую делать запись вектора чисел в файл так:
Молодец. Продолжай, работай, стремись, дерзай. Не останавливайся ни при каких обстоятельствах. Кто бы что не говорил и не писал. Молодец.
rossecorp вне форума  
 
Непрочитано 09.07.2012, 19:15
#27
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от C# ученик Посмотреть сообщение
Народ! если кто решает на C# простые задачи строительной механики, то рекомендую делать запись вектора чисел в файл так:
...
Проверено, работает. Все числа записываются каждое на отдельной строке! Потом в автолиспе такой файл удобно будет считывать
Offtop: Вот здесь я чуть не погиб...
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 18.12.2013, 16:06
#28
Chardash

Соискатель
 
Регистрация: 12.03.2011
Урал
Сообщений: 1,496


Здравствуйте! Как задать целое число в С++?
Имеются типы char, short, int (им бы и задал, но ограничено сверху и снизу, как и в остальных случаях), long, long long
Вопрос в следующем, как сделать, чтобы при вводе числа учитывались все возможные границы ввода?
Хотелось бы разобраться, а не просто плюнуть и задать long long или int

Последний раз редактировалось Chardash, 18.12.2013 в 16:12.
Chardash вне форума  
 
Непрочитано 22.12.2013, 00:16
#29
Chardash

Соискатель
 
Регистрация: 12.03.2011
Урал
Сообщений: 1,496


Разобрался.
Код:
[Выделить все]
 
#include <iostream>
#include <climits>
int main ()
{
	using namespace std;
	int n_int = INT_MAX;
	short n_short=SHRT_MAX;
	long n_long=LONG_MAX;
	long long n_llong=LLONG_MAX;

	cout << "int is " << sizeof (int) << "bytes." << endl;
	cout << "short is " << sizeof n_short << " bytes." << endl;
	cout << "long is " << sizeof n_long << " bytes." << endl << endl;
	cout << "long long is " << sizeof n_llong << " bytes." << endl << endl;
	cout << endl;

	cout << "Maximum values:" << endl;
	cout << "int: " << n_int << endl;
	cout << "short: " << n_short << endl;
	cout << "long: " << n_long << endl;
	cout << "long long: " << n_llong << endl << endl;

	cout << "Minimum int value:" << INT_MIN <<endl;
	cout << "Bits per byte:" << CHAR_BIT <<endl;
	return 0;
}
Это получено в win8 x64
Миниатюры
Нажмите на изображение для увеличения
Название: 111.png
Просмотров: 52
Размер:	9.0 Кб
ID:	119178  

Последний раз редактировалось Chardash, 22.12.2013 в 00:22.
Chardash вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Си - сложный язык по сравнению с автолиспом



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Основные плюсы AutoCad по сравнению с ArchiCad/ Saha AutoCAD 34 23.07.2009 17:05