home *** CD-ROM | disk | FTP | other *** search
/ The Houseplan Collection / HRCD2005.ISO / data1.cab / Zusatz / 3DS / DATA2.Z / Treppe.bas < prev    next >
BASIC Source File  |  1998-11-06  |  3KB  |  97 lines

  1. Attribute VB_Name = "Treppe"
  2. Option Explicit
  3.  
  4. Public exe As New ArCon.ArCon
  5.  
  6. Public Sub ErzeugeWendeltreppe(Stockwerk As ArCon.Story, PfostenObjekt As String)
  7.     ' Die Konstruktionsdaten werden in einem PolygonWendelConstruction Objekt
  8.     ' gesammelt.
  9.     Dim c As ArCon.PolygonWendelConstruction
  10.     Set c = exe.NewPolygonWendelConstruction
  11.  
  12.     ' Beginnen wir mit dem Polygon der Treppe...
  13.     Dim poly As ArCon.Point2DCollection
  14.     Set poly = exe.NewPoint2DCollection
  15.     poly.AddPoint 0, 0
  16.     poly.AddPoint 0, -5
  17.     poly.AddPoint 3, -7
  18.     poly.AddPoint 6, -5
  19.     poly.AddPoint 5, -2
  20.     poly.AddPoint 3, -2
  21.     poly.AddPoint 3, 2
  22.     c.Achslage = ACPWA_Mitte
  23.     c.SetPolygon poly
  24.  
  25.     ' Allgemeine Treppeneinstellungen
  26.     c.Bauart = ACPWS_Holztreppe
  27.     c.WinkelAmAntritt = 0
  28.     c.NiveauAmAntritt = 0
  29.     c.WinkelAmAustritt = 0
  30.     c.LaufBreiteAussen = 1
  31.     c.AnzahlSteigungen = 16
  32.     c.hoehe = 2.8
  33.     c.MitGelaenderLinks = True
  34.     c.MitGelaenderRechts = True
  35.  
  36.     ' GelΣndereinstellungen
  37.     c.GelaenderBauart = ACPW_Gelaender_Modern
  38.     c.HandlaufDurchmesser = ACPWQ_Kreis
  39.     c.HandlaufDurchmesser = 0.04
  40.     c.HandlaufMitKnicken = True
  41.     c.HandlaufHoehe = 0.9
  42.     c.MaximaleAuslenkungLinks = 0.06
  43.     c.MaximaleAuslenkungRechts = 0.06
  44.     
  45.     ' Fu▀lauf
  46.     c.MittlererFusslaufAbstand = 0.05
  47.     c.FusslaufBreite = 0.06
  48.     c.FusslaufDicke = 0.26
  49.     
  50.     ' StΣbe
  51.     c.StabQuerschnitt = ACPWQ_Rechteck
  52.     c.StabBreite = 0.04
  53.     c.StabDicke = 0.03
  54.     c.StabMaximalerAbstand = 0.15
  55.  
  56.     ' Einstellungen fⁿr Pfosten
  57.     If PfostenObjekt <> "" Then
  58.         c.PfostenQuerschnitt = ACPWQ_3DObjekt
  59.         c.pfostenObjektName = PfostenObjekt
  60.     Else
  61.         c.PfostenQuerschnitt = ACPWQ_Kreis
  62.     End If
  63.     c.PfostenBreite = 0.1
  64.     c.PfostenDicke = 0.1
  65.     c.PfostenDurchmesser = 0.08
  66.     c.PfostenLaenge = 1.2
  67.  
  68.     ' Damit sind alle Angaben fⁿr die Treppenkonstruktion vorhanden und
  69.     ' wir k÷nnen das Konstruktionsobjekt eine Treppe erzeugen lassen.
  70.     Dim s As ArCon.StairCase, t As Long
  71.     t = FindeTreppentyp
  72.     Set s = c.CreateStairCase(t)
  73.     ' Das PolygonWendelConstruction Objekt ist damit wertlos geworden,
  74.     ' es darf jetzt nicht mehr weiter manipuliert werden. Zur Sicherheit
  75.     ' entsorgen wir es.
  76.     Set c = Nothing
  77.  
  78.     ' Die erzeugte Treppe kommt nun in das ⁿbergebene Stockwerk
  79.     Stockwerk.PlaceStairCase s, False
  80. End Sub
  81.  
  82. ' Ermittle die Typkodierung fⁿr die erste polygonale Wendeltreppe aus Holz.
  83. ' Dies kann nur zur Laufzeit geschehen, da abhΣngig von der ArCon Installation
  84. ' unterschiedliche Treppentypen verfⁿgbar sind. Leider ist dies sprachabhΣngig...
  85. Private Function FindeTreppentyp() As Long
  86.     Dim i As Long, num As Long
  87.     num = exe.AvailableStairCases
  88.     For i = 0 To num - 1
  89.         Dim n As String
  90.         n = exe.GetStairCaseName(i)
  91.         If InStr(n, "Holz") > 0 And InStr(n, "Wendel") > 0 And InStr(n, "Poly") > 0 Then Exit For
  92.     Next
  93.     ' XXX - funktioniert noch nicht
  94.     FindeTreppentyp = 15 ' i
  95. End Function
  96.  
  97.