Cenon Change Log - September 2005 2005-09-01 Georg Fleischmann * DocView.m, h (-isMultiPage, -pageCount, -knowsPagesFirst:, -rectForPage:): new Document (-print:): multi page printing added IPAllLayers.m (-displayChanged:): disable other pages -> Printing of multi page documents * DocView.m (-drawText:): display page number #PAGENUM# and page count #PAGECNT# from templates for all, even, and odd page numbers -> Template for page numbering * VText.m, h (-replaceSubstring:withString:): new 2005-09-02 Ilonka Fleischmann * VPath (-contour:inlay:spliCurves:): iPts = NULL two times, clean-up 2005-09-03 Ilonka Fleischmann * VCurve.m (-hitControl::controlSize:) if ( ...dist <= lastDist... instead of dist < lastDist -> take p0 or p3 in case a support point (p1 / p2) is placed upon a start/end point (p0 / p3) 2005-09-03 Ilonka Fleischmann * HiddenArea.m (-removePartsOf:hiddenBy:) kindOfClass VRectangle was missing in case without split HiddenArea.m (-removeSingleGraphicsInList:) g2 instead of g1 in kindOfClass VRectangle in j Schleife HiddenArea.m (-uniteAreas:): ([og isKindOfClass:[VRectangle class]] && ![og filled]) was missing and for PolyLine ![og filled] ! HiddenArea.m (-uniteAreas:) ([cg isKindOfClass:[VRectangle class]] && ![cg filled]) fehlte HiddenArea.m (-uniteAreas:) auskommentiert: if ( [og isKindOfClass:[VGroup class]] ) [self uniteAreas:[(VGroup*)og list]]; HiddenArea.m (-removeHiddenAreas:) verÙndert, damit auch Gruppen gepuncht werden kðnnen HiddenArea.m (-uniteAreas:) verÙndert, damit auch Gruppen unitet werden kðnnen * DocView.m (-validateMenuItem:) for punch we also search (recursive) within group for a filled object * VGroup.h, m (-recursiveObjectAtIndex:): new (-recursiveRemoveObjectAtIndex:): new (-recursiveInsertObject:atIndex:): new (funktionieren recursive auf die list der Group) * VGroup.m (-countRecursive): the path objects are no longer counted! (wasn't used yet) * VGroup.m (-getIntersectionsAndSplittedObjects:with) auskommentiert VGroup.m (-getIntersectionsAndSplittedObjects:with) for malloc ptsCnt = Min(100, [self numPoints]) + realloc VGroup.m (-getIntersections:with:) ptsCnt = Min(100, [self numPoints]) instead of [list count] * 9 + realloc VGroup.m (-getListOfObjectsSplittedFrom::) auskommentiert VGroup.m (-getIntersections:with:) auskommentiert VGroup.m (-uniteWith:) auskommentiert -> damit kann mit Rechtecken / Gruppen gepuncht werden (verdeckte FlÙchen wegrechnen) 2005-09-05 Georg Fleischmann * App.m (-loadModules:): load modules only once, if located in several places 2005-09-07 Ilonka Fleischmann * IPPath.h,m (-update:) links/rechts Buttons hinzugefögt beim enablen/disablen IPPath.m (-update:) IPPolyLine.m (-update:) x/y-Fields of selected Point are set always (the fields showed wrong values) IPPath.nib engl/dtsch : 4x buttons connected und enabled 2005-09-08 Ilonka Fleischmann * GerberExportSub.m (-exportPath:) writeLayerPolarityMode: aufrufe verbessert (Fix: es werden jetzt keine "leeren" Lagen (%LPD* %LPC* %LPD* oder so) mehr geschrieben) * GerberExportSub.m (-exportPolyLine:) wenn geföllt writePolygonMode:YES (Fix: geföllte PolyLines werden jetzt auch geföllt exportiert) 2005-09-08 Ilonka Fleischmann (Fix: jede Menge Berechnungsfehlerchen beim sÙmtlichen Berechnungen (PCB/ GerberImport / Punch ...) * VPath.m (-getLastObjectOfSubPath:) distance zur nÙchsten graphic checken ! (Fix: der macht zuviele fehler sonst mit der grossen Toleranz beim contour uniteWith, import, export fast alle Berechnungen) VPath.m (-intersectionsForPtInside:) pointWithToleranceInArray() with TOLERANCE tolerance instead of pointInArray() VPath.m (-uniteWith:) if (!removedFromNg || !removedFromUg) bei uStartIs auch subpaths rausschmeissen VPath.m (-uniteWith:) if (...((i+1 >= listCnt) ? (0) : (i+1)) == startI) instead of i+1 == startI VPath.m (-uniteWith:) add closed chapes [splitListUg count] checked with uStartIs[] 2 stellen VPath.m (-uniteWith:) bei uStartIs[] suche distance zur nÙchsten graphic checken VPath.m (-uniteWith:) nothing splitted abfrage von vorne nach if (!removedFromNg && !removedFromUg) gesetzt ! VPath.m (-uniteWith:) correct endIs[eCnt-1] if last object in list (only the index) VPath.m (-uniteWith:) if ((eptCnt > 1 && (SqrDistPoints(closePt, ePts[1]) < SqrDistPoints(closePt, ePts[0]) zusÙtzlich zu < tol+tol VPath.m (-uniteWith:) if (sptCnt > 1 && ... < SqrDistPoints(ej, sPts[0])... zusÙtzlich zu < tol*tol wie oben (för ej und sj hier) * VPath.m (-contourOpen:) (w < 0.0 && Abs(w) >= width) instead of Abs(w) >= width (Abstand war falsch ) * VPath.m (-join:) [self deselectAll] UND selectedObject = -1; (Fix: die SelektierPunkte sind jetzt richtig (nÙmlich keiner mehr) nach dem join zweier objekte) * VPolyLine.m (-pointWithNum:) if(pt_num < 0) return NSMakePoint( 0.0, 0.0) VPolyLine.m (-getIntersections:with:) if intersection point lays on a peek /\ or \/ we must have two intersectionpoints !! VPolyLine.m (-uniteWith:) nothing splitted abfrage von vorne nach if (!removedFromNg && !removedFromUg) gesetzt ! VPolyLine.m (-uniteWith:) if (!removedFromNg || !removedFromUg) bei uStartIs auch subpaths rausschmeissen VPolyLine.m (-uniteWith:) if (...((i+1 >= listCnt) ? (0) : (i+1)) == startI) instead of i+1 == startI VPolyLine.m (-uniteWith:) add closed chapes [splitListUg count] checked with uStartIs[] 2 stellen VPolyLine.m (-uniteWith:) bei uStartIs[] suche distance zur nÙchsten graphic checken VPolyLine.m (-uniteWith:) correct endIs[eCnt-1] if last object in list (only the index) VPolyLine.m (-uniteWith:) if ((eptCnt > 1 && (SqrDistPoints(closePt, ePts[1]) < SqrDistPoints(closePt, ePts[0]) zusÙtzlich zu < tol+tol VPolyLine.m (-uniteWith:) if (sptCnt > 1 && ... < SqrDistPoints(ej, sPts[0])... zusÙtzlich zu < tol*tol wie oben (för ej und sj hier) * VArc.m (-uniteWith:) if (!removedFromNg || !removedFromUg) bei uStartIs auch subpaths rausschmeissen VArc.m (-uniteWith:) if (...((i+1 >= listCnt) ? (0) : (i+1)) == startI) instead of i+1 == startI VArc.m (-uniteWith:) nothing splitted abfrage von vorne hinter if (!removedFromNg && !removedFromUg) gesetzt! VArc.m (-uniteWith:) add closed chapes [splitListUg count] checked with uStartIs[] 2 stellen VArc.m (-uniteWith:) bei uStartIs[] suche distance zur nÙchsten graphic checken VArc.m (-uniteWith:) correct endIs[eCnt-1] if last object in list (only the index) VArc.m (-uniteWith:) if ((eptCnt > 1 && (SqrDistPoints(closePt, ePts[1]) < SqrDistPoints(closePt, ePts[0]) zusÙtzlich zu < tol+tol VArc.m (-uniteWith:) if (sptCnt > 1 && ... < SqrDistPoints(ej, sPts[0])... zusÙtzlich zu < tol*tol wie oben (för ej und sj hier) VArc.m (-isPointInsideOrOn:) on test before in test VArc.m (-intersectArc::::) centers nearly identical < 2.0*TOLERANCE instead of < TOLERANCE VArc.m (-intersectArc::::) tol = 1.4*TOLERANCE instead of 2.0*TOLERANCE (för at = ..) VArc.m (-intersectLine:::) if ((an>=ba && an<=ea) || .. < 1.5*TOLERANCE instead of < TOLERANCE 2x * VRectangle.m (-uniteWith:) if (!removedFromNg || !removedFromUg) bei uStartIs auch subpaths rausschmeissen VRectangle.m (-uniteWith:) if (...((i+1 >= listCnt) ? (0) : (i+1)) == startI) instead of i+1 == startI VRectangle.m (-uniteWith:) nothing splitted abfrage von vorne hinter if (!removedFromNg && !removedFromUg) gesetzt! VRectangle.m (-uniteWith:) add closed chapes [splitListUg count] checked with uStartIs[] 2 stellen VRectangle.m (-uniteWith:) bei uStartIs[] suche distance zur nÙchsten graphic checken VRectangle.m (-uniteWith:) correct endIs[eCnt-1] if last object in list (only the index) VRectangle.m (-uniteWith:) if ((eptCnt > 1 && (SqrDistPoints(closePt, ePts[1]) < SqrDistPoints(closePt, ePts[0]) zusÙtzlich zu < tol+tol VRectangle.m (-uniteWith:) if (sptCnt > 1 && ... < SqrDistPoints(ej, sPts[0])... zusÙtzlich zu < tol*tol wie oben (för ej und sj hier) * VRectangle.m (-drawWithPrincipal:) Max( 0.01, size.x) instead of Max( 1.0, size.x) (Fix: Rechtecke werden jetzt auch bis zu einer Grðsse von 0.01 KantenlÙnge richtig gemalt) 2005-09-13 Georg Fleischmann * Cenon 3.71 Cenon 3.71 2005-09-17 Georg Fleischmann * DocView.h (DocViewDragSelect): notification name for drag select DocView.m (-dragSelect:): post notification with "region" in userInfo 2005-09-23 Georg Fleischmann * dvPasteboardType.m (-pasteboard:provideDataForType:): PDF addded, check types using [self e2TypesCenonExports] dvPasteboardType.m (-copySelectionAsPDF): new dvPasteboardType.m (-dataForPDFUsingList): new dvPasteboardType.m (-dataForPDF): new dvPasteboardType.m: PB_CANSERVER_PDF defined for __APPLE__ dvPasteboardType.m (-copyToPasteboard:types:): PDF added DocView.m, h: name change to e2CenonPasteType() * VGroup.m (): 4 places corrected (line 176ff, 203ff) returning a value instead void * Clean-Up of titles in many other files 2005-09-25 Georg Fleischmann * DocView.m (-addList:toLayerAtIndex:): add layer as last layer (no offset) * App.m (-import:): import to existing layer added Main.nib (Import-Accessory): popup item 3 to import to existing layer DocView.m (-addList:toLayerAtIndex:): import to existing layers by name or color reference Localization.strings: CREATELAYER_STRING, SKIP_STRING, IMPORTTONOTEXISTINGLAYER_STRING added Localizable.strings: strings added 2005-09-26 Georg Fleischmann * DXFImport.m (-getGraphicFromData:): added closing of PolyLine with Arc 2005-09-27 Georg Fleischmann * VRectangle.m (-contour): keep direction next Cenon 3.72