å
æ¥ SDKã«
ä»å±ããŠ
ãã
NanoCAD APIã®ããã¥ã¡ã³ããåç
§ããŠãã
ãšãã«ã.NET APIãšMultiCAD.NET APIã®ã¯ã©ã¹ã¡ã³ããŒã®èª¬æãCïŒãš
Visual Basicã®äž¡æ¹ã§æäŸãããŠããããšã«çªç¶æ°ä»ããŸããã ãããŠãç§ã¯èããŸããïŒãããããVBã®èª¬æãããã®ã¯çŽ æŽãããããšã§ãïŒã
æ£çŽã«èšã£ãŠãç§ã¯VBããŸã£ããç¥ããŸãããã100幎åã«å€ãè¯ãBASICã§ã³ãŒããèŠããšããããã¯äººã
ãããã°ã©ãã³ã°ã®åºç€ãåŠã³å§ããèšèªã®1ã€ãªã®ã§ãããã°ã©ã ã®æ®åã«å°ãè²¢ç®ããããšã«ããŸããã
Nanobrã§
ã®VBã®
䜿çšã«é¢ããHabrã«é¢ããè¯ãèšäºãæ¢ã«ãããšèšããªããã°ãªããŸãããNanoCADãšExcelã®çµã¿åãããšããããæçµçã«å»ºç¯èšèšã容æã«ããæ¹æ³ã«ã€ããŠèª¬æããŠããŸãã
å¥ã®ãããã·ã³ãã«ã§ããããç¥ãã®ã¿ã¹ã¯ã解決ã
ãã¯ãªã¹ãã¹ããªãŒã
æã㊠ããŠãŒã¶ãŒã«
æ°å¹Žããç¥ãããŸãã ãã®èšäºã¯VBã«å°å¿µããŠãããšããäºå®ã«ããããããã
CïŒã®ã³ãŒããåæ§ã«ãªããŸãã
ãŸãããæ°å¹Žãã¯è²»çšã®ãããäŒæ¥ã§ãã
ããã NanoCAD 5.1ã®
åçšå©çšã®ç¡æçã«çŠç¹ãåœãŠãŸãïŒãã ããçè«çã«ã¯NC 8.Xã§ã¯åé¡ãªãåäœããã¯ãã§ãïŒã
ãŸããMonoãšWineã䜿çšããCïŒã³ãŒããã³ã³ãã€ã«ããŠå®è¡ã§ãããã
ãLinuxãŠãŒã¶ãŒããã€ãã¹ããŸããã
æ£çŽã«èšããšãç§èªèº«ãæè¿NanoCAD APIãç¿åŸãå§ããã®ã§ãä»å¹Žã®æåŸã®äŒæ¥ã®èšäºã¯ãã³ãŒãã®è€éãã®æãããã¥ãŒãã°ã©ãã£ãã¯ã¢ãŒãã£ã¹ã
ãKengurenokïŒROOïŒããæãåºãããŸãã
PSããã¯ãHabrahabrããšããèšèã®æåã®æåã§ã-ãã以äžã¯ååã§ã¯ãããŸããã§ãã=ïŒç§ã®æ°ãã趣å³ã¯ãã§ã«å°ããªã·ãªãŒãºã«ãªã£ãŠããã®ã§ã念ã®ããããã¿ãã¬ã®äžã«ä»¥åã®ãã¹ãŠã®èšäºãžã®ãªã³ã¯ãæ²èŒããŸãã
ãã®ä»ã®ãµã€ã¯ã«èšäº ã¯ããã«ããã€ãã®ããã«ã
ç§ã¯ããã°ã©ããŒã§ã¯ãªãããããã®èšäºã®ç§ã®èãããã¹ãŠ100ïŒ
æ£ãã
ããã§ã¯ãªãããšããŸãã
ç§ããã·ã¢CADãæ®åããããšããã€ããªãã®ãŒã®çç±ãã
ãNanoCADéçºè
ãšã¯äœã®é¢ä¿ããªãããšãæãåºããŸãã
幎æ«ã«ã¯å€§éã®ããã¹ããäœæããããªãã®ã§ãèšäºã¯çããªããŸãããããåæããŸãã
å
容ïŒ
ããŒãIïŒã¯ããã«ããŒãIIïŒCïŒã³ãŒãã®èšè¿°ããŒãIIIïŒVBã§ã®ã³ãŒãã®èšè¿°ããŒãIVïŒæ¥ãŠïŒããŒãIIïŒCïŒã³ãŒãã®èšè¿°
NC 8.5ã®Visual Studio 2015ã§æ°ãããããžã§ã¯ããäœæããæ¹æ³
ä»åã¯ã奜å¥å¿ã®ããã«ããã軜éã®IDE Xamarin StudioïŒ
MonoDevelop ïŒã§ãããžã§ã¯ããäœæããŸãããã
ããã»ã¹å
šäœããã¿ãã¬ã®äžã«é ããŸãã
Xamarin Studio IDEã§NanoCAD 5.1ã®CïŒãããžã§ã¯ããäœæããæ¹æ³ãŸããæ°ãããããžã§ã¯ããäœæããCïŒã¯ã©ã¹ã©ã€ãã©ãªãéžæããŸãã

圌ã«ååãã€ããŠ

次ã«ãRMBã§ãããžã§ã¯ããã¯ãªãã¯ããããã©ã¡ãŒã¿ãŒããã¿ã³ãéžæããŠããããžã§ã¯ããæ§æããŸãã

.Net 3.5ããŒãžã§ã³ãéžæ

次ã«ããããã°ã®äŸ¿å®äžããF5ãããŒãæŒããŠNanocadã®èµ·åãèšå®ããŸã
ïŒã³ãŒããå€æŽãããã³ã«ãNanocadãå®å
šã«åèµ·åããå¿
èŠããããŸãïŒ

次ã«ãå³ã®å³åŽã«è¡šç€ºãããŠããã©ã€ãã©ãªãå¿
èŠãªã©ã€ãã©ãªãžã®ãªã³ã¯ãããŒãããŸã

ãããŒã«ã«ã«ã³ããŒãé
ç®ããmapimgdã©ã€ãã©ãªã®ãã§ãã¯ãå€ãããšãå¿ããªãã§ãã ãã

å®ã¯ãF5ãæŒããŠãã¹ãŠãéå§ããããšã確èªããã³ãŒããèšè¿°ããããšã¯å®éã«ã¯æ®ã£ãŠããŸãã

ã©ã€ãã©ãªãããŒãããã«ã¯ãNanoCADã³ã³ãœãŒã«ã§Netloadã³ãã³ããå
¥åããdllãéžæããŸãïŒéåžžã¯ãããžã§ã¯ããã©ã«ããŒã«ãããŸããããšãã°ãCïŒ\ Users \ b \ Dev \ habr \ XMTree \ XMTree \ bin \ DebugïŒ
æ¯åãããããªãããã«
ã¢ãã¬ã¹Cã«ç§»åããŸãïŒ\ ProgramData \ Nanosoft \ nanoCAD 5.1 \ DataRWïŒå€æŽãããå ŽåããããŸãïŒããã³æ¬¡ã®å
容ã®load.configãã¡ã€ã«ãæ€çŽ¢ãŸãã¯äœæããŸã
<root> <list> <module path="C:\Users\...\bin\Debug\ .dll"/> </list> </root>
ãã®åŸãããã°ã©ã ã®èµ·åæã«ã©ã€ãã©ãªãèªåçã«ããŒããããŸãã
Linuxã§ãåæ§ã®æäœãå®è¡ã§ããŸããLinuxã§ã¯ãNanoCAD 5.1ãå®è¡ããã«ã¯Wineããããã°ã©ãã³ã°ã«ã¯MonoDevelopãå¿
èŠã§ãã
ååã®èšäºã§è©³ãã説æã
ãŸãã ã
æ®å¿µãªãããWineã§åé¡ãçºçããNanoCADã®è²ãã©ããã§å£ããŠãããããLinuxããªãŒã¯æ¬¡ã®ããã«ãªããŸãã
Linuxã§ã®ã¯ãªã¹ãã¹ããªãŒ CïŒã³ãŒãã詳现ã«å解ããããšã¯ãããå®éã«ã¯æ°ããããšã¯äœãããŸããã
ã€ãŸããããªã©ã€ã³ãæç»ããŠã¹ãããŒã¯ãäœæããããŒã ãäœæããŸãã
ã¹ãã€ã©ãŒã®äžãš
GitHubã®ã³ãŒãïŒVBçšã®ããŒãžã§ã³ããããŸãïŒã
Cã®NC 5.1ã®å®å
šãªã³ãŒãïŒ çè«äžããã®ã³ãŒãã¯NC 8.Xã§ãåäœããã¯ãã§ãã察å¿ããããã容éïŒx64ãŸãã¯x86ïŒã®ã€ã³ã¯ã«ãŒããã©ã«ããŒãããããžã§ã¯ãã«mapibasetypes.dllããã³mapimgd.dllãå«ããããã«.NET Framework 4.0ãéžæãã1è¡ïŒå¯Ÿå¿ããã³ã¡ã³ããããå ŽåïŒãŸããDrawThreeBallsã¡ãœãããã³ã¡ã³ãåãŸãã¯åé€ããŸã
次ã®ããã«ãªããŸãã
Cã®NC 8.Xã®å®å
šãªã³ãŒãïŒ ããŒãIIIïŒVBã§ã®ã³ãŒãã®èšè¿°
Visual Studio 2015 for VB.NETã§ãããžã§ã¯ããäœæããããã»ã¹ã¯ãCïŒã®ãããžã§ã¯ããäœæããããã»ã¹ãšã»ãŒå®å
šã«åãã§ãããå¿
èŠãªã¹ãã«ãæã£ãŠããªã人ã§ãèšäºãèªãããšãã§ããã®ã§ããã®ç¹ãããã«è©³ããåæããŸãã
ãŸããæ°ãããããžã§ã¯ããäœæããVB.NETã¯ã©ã¹ã©ã€ãã©ãªãéžæãã.NET Framework 3.5ïŒNC 8.XããŒãžã§ã³4.0çšïŒãéžæããŸã

次ã«ãå³åŽã®ããªã³ã¯ããã¿ã³ãå³ã¯ãªãã¯ããŠãNanoCADã®ãã¹ãŠã®ããŒãžã§ã³ã®SDKã§ã€ã³ã¹ããŒã«ããã©ã€ãã©ãªã«ãªã³ã¯ãè¿œå ããŸãã
ãã®ãããžã§ã¯ãã§ã¯ãmapimgdã ãã§ååã§ãïŒNC 8.5ã§ã¯mapibasetypesãå¿
èŠã§ãïŒã
ãŸããæšæºã®System.Windows.FormsãšSystem.DrawingãããŒãããå¿
èŠããããŸã

ãããŒã«ã«ã«ã³ããŒãããããã£ã®ãã§ãã¯ãå€ãããšãå¿ããªãã§ãã ãã

次ã«ãRMBã§ãããžã§ã¯ããã¯ãªãã¯ãããããããã£ããã¿ã³ãéžæããŠããããžã§ã¯ããèšå®ããŸã
ãããã°ã®äŸ¿å®äžããF5ãããŒãæŒããŠNanocadã®èµ·åãèšå®ããŸã

ïŒã³ãŒããå€æŽãããã³ã«ãNanocadãå®å
šã«åèµ·åããå¿
èŠããããŸãïŒ
ã©ã€ãã©ãªãããŒãããã«ã¯ãNanoCADã³ã³ãœãŒã«ã§Netloadã³ãã³ããå
¥åããã³ã³ãã€ã«æžã¿ã®dllãéžæããŸãïŒéåžžã¯ãããžã§ã¯ããã©ã«ããŒã«ãããŸããããšãã°ãCïŒ\ Users \ b \ Dev \ habr \ XMTree \ XMTree \ bin \ DebugïŒã
æ¯åãããè¡ããªãããã«ãã¢ãã¬ã¹CïŒ\ ProgramData \ Nanosoft \ nanoCAD 5.1 \ DataRWïŒããã¯ç°ãªãå ŽåããããŸãïŒã«ç§»åãã次ã®å
容ã®load.configãã¡ã€ã«ãæ€çŽ¢ãŸãã¯äœæããŸãã
<root> <list> <module path="C:\Users\...\bin\Debug\ .dll"/> </list> </root>
ãã®åŸãããã°ã©ã ã®èµ·åæã«ã©ã€ãã©ãªãèªåçã«ããŒããããŸãã
ãã§ã«èšã£ãããã«ãVB.NETã«ã€ããŠã¯ãŸã£ããç¥ããŸããããCïŒãå°ãç¥ã£ãŠããŠãCïŒããVBãžã®ã³ãŒãã³ã³ããŒã¿ãŒã«ãã¹ãŠã®å€§ãŸããªäœæ¥ïŒããšãã°ã
ãã ïŒãå®è¡ããããšãå¿
èŠãªã®ã¯ãå°ãä¿®æ£ããããšã ãã§ãã
å®å
šãªã³ãã³ãã³ãŒããã¹ãã€ã©ãŒã®äžã«é
眮ãããããéšåçã«åæããŸãã
VB.NETäžã®NC 5.1ã®å®å
šãªã³ãŒã Imports System.Collections.Generic Imports Multicad.Runtime Imports Multicad.DatabaseServices Imports Multicad.Geometry Imports Multicad.DatabaseServices.StandardObjects Imports System.Drawing Imports System.Windows.Forms Namespace XmasThree Class XmasThree <CommandMethod("DXThree", CommandFlags.NoCheck Or CommandFlags.NoPrefix)> Public Sub DrawXThree() Dim _pntBase As Point3d Dim _bufPnt As Point3d Dim jig As New InputJig() 'prompts for installation point entry Dim res As InputResult = jig.GetPoint("Select first point:") If res.Result = InputResult.ResultCode.Normal Then 'The base point is taken from the entry point (click with mouse) _pntBase = res.Point 'Draw the outline of the left half of the Christmas tree 'Create base points for the polyline Dim leftPatrOfThreePoints As New List(Of Point3d)() From { New Point3d(_pntBase.X, _pntBase.Y, 0), New Point3d(_pntBase.X - 125, _pntBase.Y - 154, 0), New Point3d(_pntBase.X - 31, _pntBase.Y - 137, 0), New Point3d(_pntBase.X - 181, _pntBase.Y - 287, 0), New Point3d(_pntBase.X - 31, _pntBase.Y - 253, 0), New Point3d(_pntBase.X - 242, _pntBase.Y - 400, 0), New Point3d(_pntBase.X - 37, _pntBase.Y - 400, 0), New Point3d(_pntBase.X - 37, _pntBase.Y - 454, 0), New Point3d(_pntBase.X, _pntBase.Y - 454, 0) } 'Create a polyline (geometry) Dim leftPatrOfThree As New Polyline3d(leftPatrOfThreePoints) 'Create a polyline object and place it on the drawing Dim XThreeLeft As New DbPolyline() XThreeLeft.Polyline = New Polyline3d(leftPatrOfThree) XThreeLeft.Polyline.SetClosed(False) XThreeLeft.DbEntity.Color = Color.Green XThreeLeft.DbEntity.AddToCurrentDocument() Dim XThreeRight As New DbPolyline() XThreeRight.DbEntity.Color = Color.Green XThreeRight.Polyline = DirectCast(XThreeLeft.Polyline.Mirror(New Plane3d(_pntBase, New Vector3d(10, 0, 0))), Polyline3d) XThreeRight.DbEntity.AddToCurrentDocument() 'From the right and left sides we make a single contour for hatching Dim XThreeR As New DbPolyline() XThreeR.DbEntity.Color = Color.Green XThreeR.Polyline = TryCast(XThreeRight.Polyline.GetCopy(), Polyline3d) XThreeR.DbEntity.AddToCurrentDocument() Dim hatchPoints As New List(Of Point3d)() hatchPoints.AddRange(leftPatrOfThreePoints) hatchPoints.AddRange(XThreeR.Polyline.Points.Reverse().ToList()) Dim hatchContur As New Polyline3d(hatchPoints) 'We will create on the basis of a contour a hatch (geometry) with continuous filling Dim hatch As New Hatch(hatchContur, 0, 10, True) hatch.PattType = PatternType.PreDefined hatch.PatternName = "SOLID" 'Based on the geometry of the hatch, we create the document object, set its color properties - green Dim dbhatch As New DbGeometry() dbhatch.Geometry = New EntityGeometry(hatch) dbhatch.DbEntity.Color = Color.Green dbhatch.DbEntity.AddToCurrentDocument() 'Similarly, make a Christmas tree toy (octagon) 'red _bufPnt = _pntBase.Subtract(New Vector3d(30, 95, 0)) Dim dbOctoRed As DbPolyline = DrawThreeOctogonPl(_bufPnt) dbOctoRed.DbEntity.AddToCurrentDocument() Dim hatchCirkRed As New Hatch(dbOctoRed.Polyline, 0, 1, False) hatchCirkRed.PattType = PatternType.PreDefined hatchCirkRed.PatternName = "SOLID" Dim dbhatchCirkRed As New DbGeometry() dbhatchCirkRed.Geometry = New EntityGeometry(hatchCirkRed) dbhatchCirkRed.DbEntity.Color = Color.Red dbhatchCirkRed.DbEntity.AddToCurrentDocument() 'green _bufPnt = _pntBase.Subtract(New Vector3d(-40, 200, 0)) Dim dbOctoGreen As DbPolyline = DrawThreeOctogonPl(_bufPnt) dbOctoGreen.DbEntity.AddToCurrentDocument() Dim hatchCirkGreen As New Hatch(dbOctoGreen.Polyline, 0, 1, False) hatchCirkGreen.PattType = PatternType.PreDefined hatchCirkGreen.PatternName = "SOLID" Dim dbhatchCirkGreen As New DbGeometry() dbhatchCirkGreen.Geometry = New EntityGeometry(hatchCirkGreen) dbhatchCirkGreen.DbEntity.Color = Color.LightSeaGreen dbhatchCirkGreen.DbEntity.AddToCurrentDocument() 'blue _bufPnt = _pntBase.Subtract(New Vector3d(-12, 350, 0)) Dim dbOctoBlue As DbPolyline = DrawThreeOctogonPl(_bufPnt) dbOctoBlue.DbEntity.AddToCurrentDocument() Dim hatchCirkBlue As New Hatch(dbOctoBlue.Polyline, 0, 1, False) hatchCirkBlue.PattType = PatternType.PreDefined hatchCirkBlue.PatternName = "SOLID" Dim dbhatchCirkBlue As New DbGeometry() dbhatchCirkBlue.Geometry = New EntityGeometry(hatchCirkBlue) dbhatchCirkBlue.DbEntity.Color = Color.Blue dbhatchCirkBlue.DbEntity.AddToCurrentDocument() MessageBox.Show("I Wish You A Merry Christmas And Happy New Year!!!") End If End Sub Public Function DrawThreeOctogonPl(_pntB As Point3d) As Polyline3d 'Create points for an octagon Dim octoPoints As New List(Of Point3d)() From { New Point3d(_pntB.X, _pntB.Y, 0), New Point3d(_pntB.X - 15, _pntB.Y, 0), New Point3d(_pntB.X - 25, _pntB.Y - 11.3, 0), New Point3d(_pntB.X - 25, _pntB.Y - 26.3, 0), New Point3d(_pntB.X - 15, _pntB.Y - 37.6, 0), New Point3d(_pntB.X, _pntB.Y - 37.6, 0), New Point3d(_pntB.X + 9.7, _pntB.Y - 26.3, 0), New Point3d(_pntB.X + 9.7, _pntB.Y - 11.3, 0), New Point3d(_pntB.X, _pntB.Y, 0) } Return New Polyline3d(octoPoints) End Function End Class End Namespace
ã³ãŒãã¯åçŽã§ããã念ã®ãããVBã®å Žåã¯ãããŸã§è¡ã£ãããšããªããããã³ãŒãã詳现ãã€éšåçã«åæããŸãã
Imports System.Collections.Generic Imports Multicad.Runtime Imports Multicad.DatabaseServices Imports Multicad.Geometry Imports Multicad.DatabaseServices.StandardObjects Imports System.Drawing Imports System.Windows.Forms
æç»çšã®MultiCAD.NET APIã©ã€ãã©ãªã®åå空éãããã³ãŠã£ã³ããŠã衚瀺ããŠãããã³ã°ã«è²ãå²ãåœãŠãWindowsã©ã€ãã©ãªãã€ã³ããŒãããŸãã
Namespace XmasThree Class XmasThree
åå空éãšã¯ã©ã¹åã®å®çŸ©
<CommandMethod("DXThree", CommandFlags.NoCheck Or CommandFlags.NoPrefix)> Public Sub DrawXThreeLeft()
Nanocadã®ã³ãã³ãã©ã€ã³ã«å
¥åããããŒã ãäœæããå®éã«ããªãŒãæç»ããŸãã
<CommandMethodïŒ "DXThree"> -NanocadããåŒã³åºãã³ãã³ãã®åå
ãä»»æã®ååãæå®ã§ããŸãããç°¡åã«èšãã°ãæ®ãã®ãã©ã°ã®ç®çã¯ããããŸããã
Public Sub DrawXThreeLeftïŒïŒ -ã³ãã³ãã®é¢æ°ïŒã¡ãœããïŒã®ååã¯ãCADãŠãŒã¶ãŒã«ã¯èŠããªãå
éšããžãã¯ã§ãã
Dim _pntBase As Point3d Dim _bufPnt As Point3d
ã¯ãªã¹ãã¹ããªãŒã®è£
食çšã®æ¿å
¥ãã€ã³ãã®åº§æšãšæ¿å
¥ãããã¡ãŒãã€ã³ãã®åº§æšãæ ŒçŽããããã«ãã¯ã©ã¹ãã£ãŒã«ãïŒå€æ°ïŒãäœæããŸãã
Dim jig As New InputJig() Dim res As InputResult = jig.GetPoint("Select first point:")
ã³ã³ãœãŒã«ãžã®å
¥åçšã«æ°ãããªããžã§ã¯ããäœæãããŠãŒã¶ãŒã«ç»é¢ãã¯ãªãã¯ããŠæ¿å
¥ãã€ã³ãã決å®ããããæåŸ
ããŸãã
If res.Result = InputResult.ResultCode.Normal Then _pntBase = res.Point
å
¥åãæåãããšãã¯ãªã¹ãã¹ããªãŒãããã«æç»ããã倱æãããšäœãè¡ãããŸããã
Dim leftPatrOfThreePoints As New List(Of Point3d)() From { New Point3d(_pntBase.X, _pntBase.Y, 0), New Point3d(_pntBase.X - 125, _pntBase.Y - 154, 0), New Point3d(_pntBase.X - 31, _pntBase.Y - 137, 0), New Point3d(_pntBase.X - 181, _pntBase.Y - 287, 0), New Point3d(_pntBase.X - 31, _pntBase.Y - 253, 0), New Point3d(_pntBase.X - 242, _pntBase.Y - 400, 0), New Point3d(_pntBase.X - 37, _pntBase.Y - 400, 0), New Point3d(_pntBase.X - 37, _pntBase.Y - 454, 0), New Point3d(_pntBase.X, _pntBase.Y - 454, 0) }
ããªã©ã€ã³ã®é ç¹ãå®çŸ©ãããã€ã³ããæã€ãªã¹ããäœæããŸãïŒããªãŒã®å·ŠååïŒ
'Create a polyline (geometry) Dim leftPatrOfThree As New Polyline3d(leftPatrOfThreePoints) 'Create a polyline object and place it on the drawing Dim XThreeLeft As New DbPolyline() XThreeLeft.Polyline = New Polyline3d(leftPatrOfThree) XThreeLeft.Polyline.SetClosed(False) XThreeLeft.DbEntity.Color = Color.Green XThreeLeft.DbEntity.AddToCurrentDocument()
æåã«ãããªãŒã®å·Šååã®ãžãªã¡ããªïŒç»é¢ã«è¡šç€ºãããªãïŒãäœæãã次ã«ããã¥ã¡ã³ããªããžã§ã¯ããäœæããŸãããã®çµæã
XThreeLeft.DbEntity.AddToCurrentDocumentïŒïŒã³ãã³ã
ã䜿çšããŠãå³é¢ã¢ãã«ç©ºéã«é
眮ããŸãã
Dim XThreeRight As New DbPolyline() XThreeRight.DbEntity.Color = Color.Green XThreeRight.Polyline = DirectCast(XThreeLeft.Polyline.Mirror(New Plane3d(_pntBase, New Vector3d(10, 0, 0))), Polyline3d) XThreeRight.DbEntity.AddToCurrentDocument()
ããªãŒã®å³ååãäœæããã«ã¯ãå·Šããã©ãŒãªã³ã°ããã ãã§ãïŒNanoCADèªäœã®ãã©ãŒãªã³ã°ã³ãã³ãã®ã¢ããã°ïŒã ãããè¡ãã«ã¯ãããªãŒã®å·Šååã®ããªã©ã€ã³ã§Mirrorã¡ãœãããåŒã³åºããDirectCastã³ãã³ãã䜿çšããŠãã¿ã€ããPolyline3dã«ãã£ã¹ãããããšãå¿ããªãã§ãã ããã
Dim XThreeRight As New DbPolyline() XThreeRight.DbEntity.Color = Color.Green XThreeRight.Polyline = DirectCast(XThreeLeft.Polyline.Mirror(New Plane3d(_pntBase, New Vector3d(10, 0, 0))), Polyline3d) XThreeRight.DbEntity.AddToCurrentDocument()
å¥åŠãªããšã«ãNC 5.1çšSDKã®MultiCAD.NET APIã®ãã«ãã§ã¯ãéåžžã®.NET APIã®ããã¥ã¡ã³ãã«ã¯ãããŸããããããã¯MultiCAD.NET APIã«å®è£
ãããŠããããã§ããããããåç
§ã¯èŠã€ãããŸããã§ããããã®ãããå°ãªããšã以äžã®ã³ãŒãã¯ããŸãæ©èœããŸãã
Dim XThreeR As New DbPolyline() XThreeR.DbEntity.Color = Color.Green XThreeR.Polyline = TryCast(XThreeRight.Polyline.GetCopy(), Polyline3d) XThreeR.DbEntity.AddToCurrentDocument() Dim hatchPoints As New List(Of Point3d)() hatchPoints.AddRange(leftPatrOfThreePoints) hatchPoints.AddRange(XThreeR.Polyline.Points.Reverse().ToList()) Dim hatchContur As New Polyline3d(hatchPoints)
æåã«ãããªãŒã®å·Šååãšå³ååã®ç¹ãçµã¿åãããŠãç·ãæ£ããé åºã§éããããã«ããŸããå³ååã®é ç¹ã®é
åã¯ãé ç¹ãéé ã«ãªãããã«ãè£è¿ããå¿
èŠããããŸãã
次ã«ãéåžžã®æ¹æ³ã§ããã€ã³ãã®ãªã¹ãã䜿çšããŠãããªã©ã€ã³ã®ãžãªã¡ããªãäœæããŸãã
ããã§ã¯ãã³ãŒãã¯å°ãåé·ã§ããèªåã§ããæ£ç¢ºã«æžãçŽãããšãã§ããŸã 'We will create on the basis of a contour a hatch (geometry) with continuous filling Dim hatch As New Hatch(hatchContur, 0, 10, True) hatch.PattType = PatternType.PreDefined hatch.PatternName = "SOLID"
ãã«ã¹ãã«ãŒã¹ã¢ãŠãã©ã€ã³ã䜿çšããŠããããã³ã°ã®ãžãªã¡ããªãäœæããŸãã ãããã³ã°ã®ã¿ã€ããšããŠãå¡ãã€ã¶ããéžæããŸãïŒãããã³ã°ã®ååã¯ãããããã³ã°ãã³ãã³ããéžæããããšã§Nanocadèªäœã«è¡šç€ºãããŸãïŒã
Dim dbhatch As New DbGeometry() dbhatch.Geometry = New EntityGeometry(hatch) dbhatch.DbEntity.Color = Color.Green dbhatch.DbEntity.AddToCurrentDocument()
次ã«ãç·ã«èšå®ããåŸãã¢ãã«ç©ºéã«é
眮ããæç»ãªããžã§ã¯ããäœæããŸãã
ã¯ãªã¹ãã¹ããªãŒã®é£ŸããæããŠãã ããã æåã¯ããŒã«ã«é°åœ±ãä»ããããšãæ³å®ããŠããŸããããéçºè
ãã©ãŒã©ã ããåããããã³ã°ããã¢ããã€ã¹ã¯ãCïŒããŒãžã§ã³ã®ã³ãŒããšNC 5.1ã§ã®ã¿æå¹ã§ããããã8è§åœ¢ã«ãããã³ã°ããŸãã
'Similarly, make a Christmas tree toy (octagon) 'red _bufPnt = _pntBase.Subtract(New Vector3d(30, 95, 0)) Dim dbOctoRed As DbPolyline = DrawThreeOctogonPl(_bufPnt) dbOctoRed.DbEntity.AddToCurrentDocument() Dim hatchCirkRed As New Hatch(dbOctoRed.Polyline, 0, 1, False) hatchCirkRed.PattType = PatternType.PreDefined hatchCirkRed.PatternName = "SOLID" Dim dbhatchCirkRed As New DbGeometry() dbhatchCirkRed.Geometry = New EntityGeometry(hatchCirkRed) dbhatchCirkRed.DbEntity.Color = Color.Red dbhatchCirkRed.DbEntity.AddToCurrentDocument()
ããã»ã¹å
šäœã¯ä»¥åã«è¡ã£ããã®ãšåãã§ããå¯äžã®éãã¯ãã³ãŒãã®éãæžããããã«ãåå¥ã®ã¡ãœãã
DrawThreeOctogonPlã§å
«è§åœ¢ã®ããªã©ã€ã³ãå°ã
äœæããããšã§ãã
ãã®ãããªãããŒã«ãã¯3ã€ïŒèµ€ãç·ãéïŒãããŸãããããããå¥ã
ã«åããã®ã¯æå³ããªããšæããŸãã
æåŸã«æ®ã£ãŠããã®ã¯ããç¥ãã®ãŠã£ã³ããŠã衚瀺ããããšã§ãã
MessageBox.Show("I Wish You a Merry Christmas and Happy New Year!!!") End If End Sub
ãã®çµæã次ã®å³ãåŸãããŸãã
NC 5.1ã®å Žå

NC 8.1ã®å Žå

ããŒãIVïŒæ¥ãŠïŒ
ããããã誰ããç§ãã¡ãä»ã§ã¯åœ¹ã«ç«ããªãããããŠåœ¹ã«ç«ããªããã§ããããããããšèšãã§ããã...

ãŸããããã¯åå¿è
åãã®å¥ã®èšäºã§ãããHabréã«ã¯æ²èŒãããŠããŸããã
ããããåŠæ ¡ã§åœŒããããã°ã©ãã³ã°ã«ã€ããŠãã¹ãŠæããããšãããšããã«ã³ã¬ã«ãŒã®å©ããåããŠäœããæããšããæãç°¡åãªã¿ã¹ã¯ããå§ãããã®åŸããŒã·ãã¯ã®åºç€ãäžããŸããïŒåœæã¯ãã§ã«å€ãè¯ããã¹ã«ã«ã奜ãã§ãããïŒãã¯ããåºæ¬ããŒãã®ããªãšãŒã·ã§ã³ãé ãããšã¯ãå°ãªããšãåãSmallBasic ãããã°ã©ã ããæ¹æ³ã人ã
ã«æããããšãã§ããæ¹æ³ã®1ã€ã§ãããããã£ãŠãNC 5.1ã¯ããããç®çã§å®å
šã«ç¡æã§ãããããNanoCADã®æè²çã®ã©ã€ã»ã³ã¹ãååŸã§ããŸãæ©é¢ã¯ããã®åŸãç§ã¯é«æ ¡ãšäžçè·æ¥æè²ã®æè²æ©é¢ã¯éåžžã«ããNanokadãšç°¡åãªäŸãèŠãŠã©ã®ããã«ããã°ã©ã CADã«åäŸãã¡ã«èª¬æããããšãã§ãããšæããå
¬æ£ã§ã¯NCãåŠæ ¡ã§äœ¿ããããã§ãå¯äžã®CADãœãããŠã§ã¢ã§ã¯ãªãããšã«çæãã¹ãã§ãããšãããAPIãéããŠãããããªãã¯ç¢ºãã«åãã«åããããšãã§ããŸããããã³ã³ãã¹ããããã«ãããç§ã¯ããªãã«ãã¹ãŠã®å¹žããšæåãç¥ã£ãŠæ¥ãŠ2018幎ïŒãããŠ2018幎ã«ãéçºè
ãæ°ããAPIãšæ°ããNET FrameworkãåããNanoCADã®ç¡æçã®éåžžã®ã¢ããããŒããæäŸããŠãããããšãé¡ã£ãŠããŸããPSéèŠïŒå¥ã®èšäºãå²ããªãããã«ã念ã®ããã«ãç§ãšåãããã«Nanocad 8.Xã®APIãéžãã§ãã人ã
ã«èŠåããŸããå人çã«ã¯ãææ°ã®Windows 10æŽæ°ããã°ã©ã ã64ãããããŒãžã§ã³ã®NanoCADã«ã€ã³ã¹ããŒã«ããåŸãããªã©ã€ã³ã倱æãå§ããŸããïŒé«ããæ£ããèšå®ãããŠããŸããïŒããããŠã以åã«èšè¿°ããããã¹ãŠã®CïŒã³ãã³ãã¯ããäžã«åãã£ãŠãè¡ããŸãã32ãããããŒãžã§ã³ã§ã¯ããã¹ãŠãæ£åžžã«æ©èœããŸãããã®åé¡ã®è§£æ±ºçã¯ãŸã èŠã€ãã£ãŠããªãã®ã§ãWindows 10ãæŽæ°ããåã«ããããéèŠãªå Žåã¯æ³šæããŠãã ããã