خواندن اطلاعات فایل DXF و رسم آن
:تشویق:سلام خدمت دوستان
تاپیک های قبلی با مدیریت کلان سایت بدون دلیل آن هم دوتا دوتا همزمان پاک می شونند بدون ارائه راه حل و ......
حال امیدوارم در این تاپیک بتوانیم بجایی برسیم
با تسکر از همه دوستان
هدف:
اینجام انواع رسم در دلفی مخصوصا ورژن 6 یا 7 آن
رسم فایل های اتوکد dxf در image دلفی با قابیلت رسم نقطه ای
می توان توسط فرمول های ریاضی و توابع دلفی فایل های کد را خوانده و رسم کرد ان هم نه بصورت خط و دایره بلکه با نقاط
البته می دانم openGL هم هست
اما فعلا دلفی منظور است دوستان راهنمایی نمایید نه حذف تا به نتایج قابل توجه برسیم
استفاده از این دانش
امکان کنترل سیستم های کنترل مانند برش - تراش و غیره
با تشکر از همراهیتان
نقل قول: پردازش تصویر با دلفی و اتوکد
خوب که چی ؟! سه تا تاپیک ایجاد کردید ، توی هیچ کدوم یه توضیح درست و حسابی در مورد سئوالتون ندادید ، چی کار می خواید بکنید ، مشکلتون دقیقا توی کدوم قسمت ، مفهوم این عبارات چیه ؟!! :
نقل قول:
اینجام انواع رسم در دلفی مخصوصا ورژن 6 یا 7 آن
رسم فایل های اتوکد dxf در image دلفی با قابیلت رسم نقطه ای
می توان توسط فرمول های ریاضی و توابع دلفی فایل های کد را خوانده و رسم کرد ان هم نه بصورت خط و دایره بلکه با نقاط
البته می دانم openGL هم هست
اما فعلا دلفی منظور است دوستان راهنمایی نمایید نه حذف تا به نتایج قابل توجه برسیم
استفاده از این دانش
امکان کنترل سیستم های کنترل مانند برش - تراش و غیره
معلون نیست جملات شما خبریه یا سئوالی ! مشکلتون چیه ؟ می خواید اطلاعات رو از یک فایل اتوکد بخونید و در دلفی اون رو رسم کنید ؟ خوب این موضوع چه ربطی به پردازش تصویر داره ؟
متاسفانه بدون توجه به تذکری که بهتون دادم باز هم اقدام به ارسال پستهای پشت سر هم در تاپیک کردید ! لطفا قوانین رو رعایت کنید :
عنوان مناسب ، توضیح مناسب در مورد سئوال ، عدم ارسال پستهای بی محتوا و پشت سر هم و ...
کمی وقت برای بهتر پرسیدن و رعایت قوانین نمی زارید بعد طلبکار هم هستید که مدیر تاپیک من رو پاک کرد
نقل قول:
تاپیک های قبلی با مدیریت کلان سایت بدون دلیل آن هم دوتا دوتا همزمان پاک می شونند بدون ارائه راه حل و ......
نقل قول: خواندن اطلاعات فایل DXF و رسم آن
سلام، خب اگر بشه راجع بهش صحبت کنیم، بخشی از این موضوع مورد علاقه شما مورد علاقه من هم هست، حیطه ترسیمات برداری و اینترفیس های سخت افزاری...
پس برای شروع؛ فکر نمی کنم ابزاری مشابه Canvas دلفی، گزینه مناسبی برای ایجاد بستر مورد نظر فعالیت شما باشه، در نگاه ساده تر استفاده از ابزاری مثل Graphic32 رو پیشنهاد می کنم که دیدی شدیدا نقشه بیتی داره و این یه کم آزار دهنده هست... پس گزینه بهتری که می شه ازش نام برد خود +GDI ویندوز هست که یونیت های سر بار گذاری شدش برای دلفی تو همین فروم چند باری برای دانلود توسط سایر اعضا قرار داده شده...
فکر می کنم برای مدیریت و کار با داده های ترسیمات طراحی ساختاری منظم برای نگهداری اشیاء ترسیمی ضروریست...
اما در مورد مطالبی که بیان کردید؛
بیائید مسئله را به قسمت های کوچکتری تبدیل کنیم
-دستیابی به ساختار فایل های متنی کلاسیک AutoCAD یعنی DXF، خواندن وتفسیر اطلاعات آن و شاید هم ذخیره داده های ترسیمی برنامه در این قالب.
-ایجاد محیط طراحی با قابلیت ترسیم طرح های دو و سه بعدی
-و مقوله ای که شما با عنوان "امکان کنترل سیستم های کنترل مانند برش - تراش و غیره" از آن یاد کردید...
در مورد مقوله اول؛ ساختار DXF علی رغم اضافه شدن امضای دیجیتالی توسط صاحبان آن (Autodesk) این روزها در نرم افزارهای متعددی اعم از داخلی و خارجی مورد استفاده قرار گرفته و به همین جهت منابع متعددی در اینترنت جهت معرفی این ساختار وجود دارد ... ولی اگر به دنبال یک چیزی شبیه کامپوننت اونم از نوع رایگان ومثلا کدباز می گردید که به مثابه شی TBitmap مثلا شی TDXFObject رو به شما بدهد و با روتینی مثل LoadFormFile برایتان مثل آب خوردن یک فایل DXF را باز کند، باید بگم من چند وقت پیش دنبال یه همچین چیزی گشتم و پیدا نکردم...لذا اگرپیدا کردید ما رو هم در جریان بگذارید :لبخند: اما اگر کمی توقعتان را کم کنید و به ActiveX ها رضایت بدهید اطمینان دارم یه چیزهایی پیدا می کنید که البته با کمی زحمت کمکتان کنند...
اما در مورد مقوله دوم؛ دوست عزیز راهبرد اصلی شما در این بخش برای من کاملا نا مشخص است، آیا این محیط فقط محیطی نمایشی برای فایل های ترسیمی است و یا اهداف ویرایشی و ترسیمات جدید هم در راستای پروژه شما قرار دارند... در هر حالت و با توجه به سه بعدی بودن محیط یقینا OpenGL آسان ترین راه و قابل اطمینان ترین راه های موجودی است که من با آنها آشنایی دارم، گفته شما را در جمله "البته می دانم openGL هم هست اما فعلا دلفی منظور است"، اصلا درک نکردم، آیا شما تصور می کنید از هر ابزاری که استفاده کنید حتی Canvas غیر از اینست که کار اصلی به دست کتابخانه های ترسیمی خارج از برنامه شماست ... و اگر فکر می کنید OpenGL مقوله پرت و احیانا پیچیده ایست و چنین پروژه ای را می خواهید انجام دهید مطمئنا هر راه دیگری که انتخاب کنید پیچیدگی بیشتری خواهد داشت، در عین حال شما می توانید از کامپوننتها و کتابخانه های کمکی فراوانی که بر اساس OpenGL و یا ابزار مشابه نوشته شده اند بهره ببرید...
واگر باز هم تمایل دارید کار را با همان Canvas برای ترسیمات سه بعدی انجام دهید، ضمن ابراز نگرانی شدید از سرعت به شدت پایین Canvas :لبخند:، سوالی که پیش می آید در مورد میزان آشنایی به هندسه سه بعدی و دویعدی و نگاشنهای دو محیط به یکدیگر است، البته اینها را هم که پشت سر بگذارید باید تحقیقات وسیعی در حیطه محاسبه عمق و امکانات محاوره ای محیط خود انجام دهید و...
و البته منظور شما از ترسیم نقطه ای رو متوجه نشدم،بیشتر توضیح بدهبد!
و در مورد سوم که کاملا ناقص بیان کردید، چه رابطی چه ارتباطی؟ رسانه و یا رابط این فرآیند کنترل چیست؟
دستگاه برش و تراش خاصی مورد نظر شماست و یا به چیز استاندارد مثل به جور CNC؟
خب دوست عزیز با توجه به این همه پرحرفی که در قسمت های بالا کردم، متوجه می شید چه سوال کلی و نامفهومی رو در یک تاپیک مطرح کردید؟به اعتقاد بنده هر کدوم از این بخش ها خوشون در صورت ورود به فاز عملی می تونند سرمنشا تعداد زیادی سوال برای طرح در موضوعی جداگانه باشند..
والبته در مورد عدم پاسخ دادن سایر اعضا به یک سوال، خب برای من هم پیش اومده و البته دلایل زادی می تونه داشته باشه مثل خیلی تخصصی بودن موضوع، نو و جدید بون مقوله، عدم اطلاع سایر اعضا از اون مساله(که البته همه ماهایی که تو این عرصه فعالیت می کنیم نسبت به وسعت اون اشراف نسبی ای رو داریم و البته از اونجایی که حکیم نیستیم جواب همه سوال ها رو نمی دونیم.:لبخند:) و... که معمولا با ترفندهایی مثل کارهایی که شما کردید نمی شه برشون فائق اومد! البته قبول دارم اینجا رفتارها کمی خشونت آمیزه :گریه:
موفق و پایدار باشید.
1 ضمیمه
نقل قول: خواندن اطلاعات فایل DXF و رسم آن
سلام این هم فایل importer فایل dxf که در بالا اشاره کردم
من از نحوه استفاده از ان و توابع داخلیش چیزی نمی دانم و فایل محافظت شده است
نقل قول: خواندن اطلاعات فایل DXF و رسم آن
دوست عزیز، من فایل هدر (به زبان C) رو پیدا کردم ولی اولاً نیاز به یکسری فایل دیگه بعنوان AppKit داره که باید استفاده کنید : AppKit؛ ثانیاً سینتکس عجیبی داره، @interface و @end و - و ... که من نمیدونم چخ معنی میدن! احتمالاً تو AppKit اینجور سینتکس ها #define شده :
/* DXFImport.h
* DXF import object
*
* Copyright (C) 1996-2005 by vhf interservice GmbH
* Author: Georg Fleischmann
*
* created: 1996-05-01
* modified: 2005-01-06
*
* This file is part of the vhf Import Library.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the vhf Public License as
* published by the vhf interservice GmbH. Among other things,
* the License requires that the copyright notices and this notice
* be preserved on all copies.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the vhf Public License for more details.
*
* You should have received a copy of the vhf Public License along
* with this library; see the file LICENSE. If not, write to vhf.
*
* If you want to link this library to your proprietary software,
* or for other uses which are not covered by the definitions
* laid down in the vhf Public License, vhf also offers a proprietary
* license scheme. See the vhf internet pages or ask for details.
*
* vhf interservice GmbH, Im Marxle 3, 72119 Altingen, Germany
* eMail: info@vhf.de
* http://www.vhf.de
*/
#include <AppKit/AppKit.h>
#define MODE_NORMAL 0
#define MODE_VERTEX 1
#define MODE_CLOSED 1
/* layer flags */
#define LAYERFLAG_FROZEN 1
#define LAYERFLAG_FROZENNEW 2
#define LAYERFLAG_LOCKED 4
typedef struct _DXFGroup
{
NSString *text;
NSString *name;
NSString *layer;
NSString *handle;
int lineType;
float x0, y0;
float x1, y1;
float x2, y2;
float x3, y3;
float width;
float endWidth;
float a;
float begAngle, endAngle;
int color;
int more;
int flags;
int genFlags;
float adjust;
int numGrp;
}DXFGroup;
typedef struct _DXFState
{
NSColor *color; /* color of object */
float width; /* width of object */
int mode; /* mode for loop in svDXFGetGraphicFromData */
float begWidth, endWidth; /* begin and end width for polylines */
float bw, ew; /* begin and end width for vertex elements */
NSPoint point; /* coordinates, used in polyline */
float A; /* Ausbuchtung for vertex */
int id; /* id, used in vertex elements */
NSPoint first; /* for vertex, the first coordinate for close */
int modeClosed; /* for vertex to close */
NSPoint offset; /* offset to move inserts by */
float rotAngle; /* angle to rotate inserts by */
}DXFState;
@interface DXFImport:NSObject
{
id list; // the base list for all contents
DXFState state; // the current gstate
NSPoint extMin, extMax; // bounds from header
NSPoint ll, ur; // bounds of data
float res; // device resolution in pixel per inch
NSArray *table; // layer table
NSArray *visibleList; // array of visible objects (from IDBUFFER) or nil for all visible
DXFGroup group; // contents of current group
NSScanner *blockScanner; // global block scanner
}
/* start import
*/
- (void)setRes:(float)rs;
- importDXF:(NSData*)dxfData;
/* dealloc import object
*/
- (void)dealloc;
/* methods needed to be sub classed
*
* create and return a list of the layers
* - allocateList:(NSArray*)layers
* make a line-object and add it to aList or layer
* - addLine:(NXPoint)beg :(NXPoint)end toList:aList
* - addLine:(NXPoint)beg :(NXPoint)end toLayer:layerName
* make a arc-object and add it to aList or layer
* - (void)addArc:(NSPoint)center :(NSPoint)start :(float)angle toList:aList
* - (void)addArc:(NSPoint)center :(NSPoint)start :(float)angle toLayer:layerName
* make a curve-object and add it to aList or layer
* - addCurve:(NXPoint)p0 :(NXPoint)p1 :(NXPoint)p2 :(NXPoint)p3 toList:aList
* - addCurve:(NXPoint)p0 :(NXPoint)p1 :(NXPoint)p2 :(NXPoint)p3 toLayer:layerName
* make a text-object and add it to layer
* - addText:(NSString*)text :(NSString*)font :(NXCoord)angle ofSize:(NXCoord)size :ar at:(NXPoint)p toLayer:layerName
* add aList as a stroked path to layer
* - addStrokeList:aList toLayer:layerName
* add aList as a filled path to layer
* - addFillList:aList toLayer:layerName
*/
- (id)allocateList:(NSArray*)layers;
- (void)addLine:(NSPoint)beg :(NSPoint)end toList:(NSMutableArray*)aList;
- (void)addLine:(NSPoint)beg :(NSPoint)end toLayer:(NSString*)layerName;
- (void)addArc:(NSPoint)center :(NSPoint)start :(float)angle toList:(NSMutableArray*)aList;
- (void)addArc:(NSPoint)center :(NSPoint)start :(float)angle toLayer:(NSString*)layerName;
- (void)addCurve:(NSPoint)p0 :(NSPoint)p1 :(NSPoint)p2 :(NSPoint)p3 toList:(NSMutableArray*)aList;
- (void)addCurve:(NSPoint)p0 :(NSPoint)p1 :(NSPoint)p2 :(NSPoint)p3 toLayer:(NSString*)layerName;
- (void)addText:(NSString*)text :(NSString*)font :(float)angle :(float)size :(float)ar :(int)alignment at:(NSPoint)p toLayer:(NSString*)layerName;
- (void)addStrokeList:aList toLayer:(NSString*)layerName;
- (void)addFillList:aList toLayer:(NSString*)layerName;
- (void)setBounds:(NSRect)bounds;
@end
نقل قول: خواندن اطلاعات فایل DXF و رسم آن
با سلام وتشکر لطفا بیشتر توضیح بدید با تشکر
نقل قول: خواندن اطلاعات فایل DXF و رسم آن
نقل قول: خواندن اطلاعات فایل DXF و رسم آن
متاسفانه بعد ارتقاسایت من نوشته هام را سخت می توانم پیدا کنم
نقل قول: خواندن اطلاعات فایل DXF و رسم آن
سلام بعد مدتها می بینم که همگی از فعالیت افتادیم فروم مشابهه دیگه
https://barnamenevis.org/showthread.p...61353&posted=1
نقل قول: خواندن اطلاعات فایل DXF و رسم آن
دوستان در این سایت خوب هم در این زمینه فعال هستند البته بهتر از ما
http://www.iranmicro.ir/forum/showth...?t=6630&page=5