Ja das geht, ist aber sowohl von der Programmierung als auh von der Handhabung öhm "Fummelig"
Aber Beispile below.
Ich würde das anders angehen und eien dir Befehl über ein Verzeichnis laufen lassen, der Blöcke enthält.
Nun könnt eman auf den Trichter kommen diese Liste in einen Dialog mit einer Listbox zu pumpen. Dazu nun noch ein paar Knöpfchen um die Blöcke ggf zu drehen, zu spiegeln etc. Und dann macht das Ganze viel mehr fun
Das ganze lässt sich beliebig ausbauen.
Ich habe mir so einen Lister erstellt dr rekursiv über so ein verzeichnis läuft. Der wühl dann alles nebst den Verzeichnisnamen durch und speichert das dann in eine SQLITE Datenbank mit Volltectindex. Ergebnis man kann in den Blöcken wie mit Google suchen.
Sowas kann man auch mit dem Design Center machen, nur war mir das immer zu fummelig.
M16 rein und der listet mir von der Mutter bis zur Unterlegscheibe alles auf.
Das ganze macht auch dahingehend Sinn als das die langsamen Dateizugriffe so entfallen. Einziger Nachteil man muss bei neueingefügten Blöcken einen Indexlauf starten um das ganze aktuell zu halten. Ich hab das in eine EXE ausgelagert Macht einmal am Tag ein Cronjob oder man stösst die halt an.
Gut das ist alles weit mehr aufwand aber ein Aufwand den man nur einmal betreiben muss.
Und ehrlich gesagt Blöcke hargecodet einzufügen ist ne saublöde Idee
Bei meiner Lösung muss ich den Block nur sinnvoll benennen und speichern.
Sollte man gar auf den trichter kommen das Laufwerk auf dem Netzwerk anzulegen kommt jeder auch in den Genuss der Errungenschften der lieben Kollegen.
Sowas in der Art haben wir damals vor 30 Jahren schon auf nem Novell Netware Sever gehabt
Hat uns viel nervige Zeit, Sucherrei un Arbeit erspart.
Leider gab es damals noch keine dynamischen Blöcke - was die nächste ANregung wäre.
Ich abe das damals mit ZAC ZEICON ASCII COMMMANDS und Powerbasic gelöst *lacht* Unter Dos
Lang ist her.
Aber hier die zwei Routinen.
Ich find das so fummelig das ich sowas nur als Demo in der Bibliothek habe.
Etwas Vergleichbares gibt es bei mir auch das nennt sich STDLISTBOX. Halt ne Lisbox wo man alles mögliche reinladen kann.
Die poppt halt hoch und man kann ohne Tastatur mit der Maus drin rummachen. Was angenehmer ist als die Fummelei mit den Curortasten
Aber viel Spaß damit.
Sub MENU()
Dim strUserInput As String
KeyWords = "Arc Close Line LEngth"
strPrompt = "Specify START POINT: "
On Error GoTo errcontrol
thisdrawing.Utility.InitializeUserInput 36, KeyWords
varPnt = thisdrawing.Utility.GetPoint(prompt:=strPrompt)
strUserInput = thisdrawing.Utility.GetInput
strPrompt = "Specify next POINT or [Arc/Close/LEngth]: "
If ERR.Number = -2145320928 Then MsgBox "USER INPUT" & strPrompt: ERR.Clear
errcontrol:
End Sub
Public Sub AddOrdinateDimension()
Dim varBasePoint As Variant
Dim varLeaderEndPoint As Variant
Dim blnUseXAxis As Boolean
Dim strKeywordList As String
Dim strAnswer As String
Dim objDimOrdinate As AcadDimOrdinate
strKeywordList = "X Y"
'Define the dimension
varBasePoint = thisdrawing.Utility.GetPoint(, _
"Select ordinate dimension position: ")
thisdrawing.Utility.InitializeUserInput 1, strKeywordList
strAnswer = thisdrawing.Utility.GetKeyword("Along Which Axis? <X/Y>: ")
If strAnswer = "X" Then
varLeaderEndPoint = thisdrawing.Utility.GetPoint(varBasePoint, _
"Select X point for dimension text: ")
blnUseXAxis = True
Else
varLeaderEndPoint = thisdrawing.Utility.GetPoint(varBasePoint, _
"Select Y point for dimension text: ")
blnUseXAxis = False
End If
'Create an ordinate dimension
Set objDimOrdinate = thisdrawing.modelspace.AddDimOrdinate(varBasePoint, varLeaderEndPoint, blnUseXAxis)
objDimOrdinate.TextSuffix = "units"
objDimOrdinate.UPDATE
End Sub
------------------
Wer es nicht versucht, hat schon verlorn
Und bei 3 Typos gibts den vierten gratis !
<<< for sale !
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP