| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: ADT-Bemassung erstellen (940 mal gelesen)
|
tmoehlenhoff Ehrenmitglied V.I.P. h.c. Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 ATD 2 bis 2007
|
erstellt am: 05. Okt. 2006 21:36 <-- editieren / zitieren --> Unities abgeben:
Hi, ist zwar recht speziell, aber vielleicht hat ja jemand 'nen guten Tipp. Ich möchte im ADT2007 eine ADT-Bemassung (AEC_DIMENSION_GROUP) per Programm erstellen und zwar für Blöcke, die ebenfalls vorher vom Programm eingefügt wurden. Nun finde ich zum einen leider nix um per Active-X oder ähnlich eine ADT-Bemassung zu erzeugen und zum anderen komme ich mit der allseits so "beliebten" command-Geschichte (also dimadd) auch nicht weiter, da ich irgendwie ein riesen Brett vorm Kopf habe und nicht heraus finde, was ich dem Befehl vor die Füsse kippen muss damit er mir meine Blöcke (oder genau genommen einen Kreis aus diesem Block) abnimmt. Ich habe lediglich herausgefunden, dass ich dem dimadd einen Auswahlsatz von (ssget ":N") mitgeben kann, nur hilft mir das nicht, da ich ja den Benuzter die Elemente nicht nochmals wählen lassen möchte und ein (ssget ":N" p1) als (von mir eh gehasste) Krücke, bei der p1 auf dem Kreis des Blockes liegt, leider auch nicht klappt ... Any hints? sayonara Torsten Möhlenhoff ACAD-Systemhaus Bremen ------------------ Alles wirD guT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
astlex Mitglied cad-admin
Beiträge: 40 Registriert: 11.07.2006 acad200x adt200x
|
erstellt am: 06. Okt. 2006 06:56 <-- editieren / zitieren --> Unities abgeben: Nur für tmoehlenhoff
hola torsten, (vla-addCustomObject (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-Get-acad-object))) "AecDbDimensionGroup") - ist im adt anscheinend nicht eingebaut also (command "_DIMADD") - nimmt bei kreisen aber nur den zentrumspunkt an ergo: wir brauchen einen anderen befehl (werde mal ein bisschen suchen) einen kreis aus einem block filtern (wenn du das benötigst) anbei eine funktion, die alle handles eines blockes ausgibt. @cadminimum sicher keine ultimativlösung, aber ich denke torsten kann's sicher für seine zwecke umbauen. lg alex
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
astlex Mitglied cad-admin
Beiträge: 40 Registriert: 11.07.2006 acad200x adt200x
|
erstellt am: 06. Okt. 2006 07:18 <-- editieren / zitieren --> Unities abgeben: Nur für tmoehlenhoff
ich nochmal, man darf keine "AecDbDimensionGroup" erstellen sondern eine "AecDimension". hier das beispiel - erstellt eine aec-bemassung auf (1000 1000 0): (setq objVLAAecDimension (vla-addCustomObject (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-Get-acad-object))) "AecDimension")) (vlax-put-property objVLAAecDimension 'Location (vlax-3d-point 1000 1000 0)) (vlax-dump-object objVLAAecDimension) sieht noch ein klein wenig strange aus, da ich noch nicht herausgefunden habe, wie man weitere koordinatenpunkte hinzufügt. lg alex
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 06. Okt. 2006 07:50 <-- editieren / zitieren --> Unities abgeben: Nur für tmoehlenhoff
OT: Zitat: Original erstellt von astlex: @cadminimum sicher keine ultimativlösung, aber ich denke torsten kann's sicher für seine zwecke umbauen.
was solln das heißen? Aber keine Bange, aus ADT halte ich mich raus ( weil nicht auf der Platte ) ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
astlex Mitglied cad-admin
Beiträge: 40 Registriert: 11.07.2006 acad200x adt200x
|
erstellt am: 06. Okt. 2006 07:56 <-- editieren / zitieren --> Unities abgeben: Nur für tmoehlenhoff
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 06. Okt. 2006 08:11 <-- editieren / zitieren --> Unities abgeben: Nur für tmoehlenhoff
Kritik heißt: andere auf ihre Fehler aufmerksam machen ..aber bevor der Beitrag hier verTsetet .. FIN ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tmoehlenhoff Ehrenmitglied V.I.P. h.c. Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 ATD 2 bis 2007
|
erstellt am: 06. Okt. 2006 08:22 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von astlex: ... sieht noch ein klein wenig strange aus, da ich noch nicht herausgefunden habe, wie man weitere koordinatenpunkte hinzufügt.
Hi Alex, das sieht ja soweit schon mal relativ gut aus, nur löst das auch noch nicht das Problem, dass ich die Kreise aus den Blöcken (und keine Punkte) hinzufügen will. Aber ich werde auch mal weitersuchen ... BTW: Das bei Kreisen der Zentrumspunkt bemaßt wird kann im Bemassungsstil festgelegt werden und ist in meinem Fall auch so gewollt. Gemeinerweise stecke die Kreise halt nur in Blöcken. sayonara Torsten Möhlenhoff ACAD-Systemhaus Bremen
------------------ Alles wirD guT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
astlex Mitglied cad-admin
Beiträge: 40 Registriert: 11.07.2006 acad200x adt200x
|
erstellt am: 06. Okt. 2006 08:43 <-- editieren / zitieren --> Unities abgeben: Nur für tmoehlenhoff
hola torsten, mit (command "_DimAttach") kannst du objekte zur bemassung hinzufügen mit (command "_DimPointsAdd") kannst du punkte hinzufügen ... sind leider command-lösungen, hab' noch keine activex gefunden die kreise aus den blöcken holst du dir mit der lisp funktion HandlesFromBlock (hab' ich schon upgeloadet) das sollte funzen, wenn nicht zeichnung einstellen lg alex
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tmoehlenhoff Ehrenmitglied V.I.P. h.c. Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 ATD 2 bis 2007
|
erstellt am: 06. Okt. 2006 09:29 <-- editieren / zitieren --> Unities abgeben:
Hi Alex, die beiden Befehle kenne ich, aber so einfach ist es nicht. Das von dir gepostete Lisp liefert den Handle des Kreises in der Blockdefinition (wie ein nentsel auch). Nur hilft der mir nix, denn damit komme ich nicht weiter, da ich keinen Weg kennen diesen Handle für das (command "dimadd" oder auch (command "dimattach" zu nutzen. Der einzige Weg (den ich bisher gefunden habe) dem (command "dimadd" was akzeptables zu übergeben ist eben ein Auswahlsatz wie er von ssget ":N" erzeugt wird, nur bringt mich das bisher auch nicht weiter. Das posten einer Beispielzeichnung könnte ich mir fast sparen, denn man braucht nur zwei Blöcke mit einem Kreis. Diese kann man locker von Hand mittels dimadd bemassen, nur per Programm habe ich noch keinen Wege gefunden... Ich hänge aber trotzdem eine DWG an sayonara Torsten Möhlenhoff ACAD-Systemhaus Hremen ------------------ Alles wirD guT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
astlex Mitglied cad-admin
Beiträge: 40 Registriert: 11.07.2006 acad200x adt200x
|
erstellt am: 06. Okt. 2006 09:34 <-- editieren / zitieren --> Unities abgeben: Nur für tmoehlenhoff
hola, aus einem handle erzeugst du mit (handent "Handle") eine entität, die du dann in einem command verwenden kannst bsp.: (command "_DIMADD" (handent "1038D") "") usw. oder versteh' ich was falsch? lg alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tmoehlenhoff Ehrenmitglied V.I.P. h.c. Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 ATD 2 bis 2007
|
erstellt am: 06. Okt. 2006 09:44 <-- editieren / zitieren --> Unities abgeben:
Nein, hast du nicht, aber hast du das mal in der Beispielzeichnung probiert? Das so erzeugte Entity nimmt dir das (command "dimadd" nicht ab, was ich auch logisch finde, da es überhaupt nix über die Lage des Objektes in der Zeichnung aussagt (wohl aber über die Lage im Block) ... sayonara Torsten Möhlenhoff ACAD-Systemhaus Bremen ------------------ Alles wirD guT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
astlex Mitglied cad-admin
Beiträge: 40 Registriert: 11.07.2006 acad200x adt200x
|
erstellt am: 06. Okt. 2006 09:53 <-- editieren / zitieren --> Unities abgeben: Nur für tmoehlenhoff
|
tmoehlenhoff Ehrenmitglied V.I.P. h.c. Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 ATD 2 bis 2007
|
erstellt am: 06. Okt. 2006 10:02 <-- editieren / zitieren --> Unities abgeben:
|
astlex Mitglied cad-admin
Beiträge: 40 Registriert: 11.07.2006 acad200x adt200x
|
erstellt am: 06. Okt. 2006 10:08 <-- editieren / zitieren --> Unities abgeben: Nur für tmoehlenhoff
|
tmoehlenhoff Ehrenmitglied V.I.P. h.c. Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 ATD 2 bis 2007
|
erstellt am: 06. Okt. 2006 10:37 <-- editieren / zitieren --> Unities abgeben:
Ich glaube nicht, dass das hilft und werde weiter in Richtung Auswahlsatz suchen. Vielleicht kriege ich ja Cadmium (oder sonst wen) wieder ins Boot wenn ich es mal umformuliere : Kann man einen Auswahlsatz wie ihn ssget ":N" erstellt auch selbst aus vorhandenen Blöcken erstellen, ohne dass man diese auswählen muss? Einen Punkt auf der vorhandenen Blockgeometrie zu berechnen wäre ja nicht das Ding, nur bringt mich das auch nicht wirklich weiter... sayonara Torsten Möhlenhoff ACAD-Systemhaus Bremen ------------------ Alles wirD guT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
astlex Mitglied cad-admin
Beiträge: 40 Registriert: 11.07.2006 acad200x adt200x
|
erstellt am: 06. Okt. 2006 10:46 <-- editieren / zitieren --> Unities abgeben: Nur für tmoehlenhoff
ein letztes mal noch, Zitat: Einen Punkt auf der vorhandenen Blockgeometrie zu berechnen wäre ja nicht das Ding, nur bringt mich das auch nicht wirklich weiter...
wenn du die punkte hast, kannst du sie ja mit (command "_DimPointsAdd") zur bemassung dazuhängen!?!! lg alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tmoehlenhoff Ehrenmitglied V.I.P. h.c. Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 ATD 2 bis 2007
|
erstellt am: 06. Okt. 2006 10:52 <-- editieren / zitieren --> Unities abgeben:
|
tmoehlenhoff Ehrenmitglied V.I.P. h.c. Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 ATD 2 bis 2007
|
erstellt am: 06. Okt. 2006 17:26 <-- editieren / zitieren --> Unities abgeben:
ok, da ich leider nix anderes gefunden habe mache ich es nun wie folgt: Ich verwende ein (command "dimadd" mit p1 bis pn als Parameter. Die Punkte berechne ich vorher und liegen auf den Kreisen der Blöcke, wodurch letztendlich eben diese assoziativ als Objekt der Bemassung hinzugefügt werden. Ist nicht schön und gefällt mir auch nicht wirklich, aber wie bereits geschrieben habe ich leider nix schlaueres gefunden. Danke an alle die mitgedacht haben. sayonara Torsten Möhlenhoff ACAD-Systemhaus Bremen ------------------ Alles wirD guT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |