Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  Kopie2Exemplar in V19

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO
  
MAIT erhält den Abas Partner Performance Award 2025, eine Pressemitteilung
Autor Thema:  Kopie2Exemplar in V19 (1015 / mal gelesen)
rmcc1980
Mitglied
Ingenieur


Sehen Sie sich das Profil von rmcc1980 an!   Senden Sie eine Private Message an rmcc1980  Schreiben Sie einen Gästebucheintrag für rmcc1980

Beiträge: 358
Registriert: 06.06.2003

Drafting 18.1
Modeling 18.1
MM
Win7 64

erstellt am: 21. Mrz. 2016 11:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
vor 11 Jahren habe ich ein MaKro umgestrickt das seitdem gut funktioniert hat.
Mit dem Makro kann man Kopien in Exemplare umwandeln oder Exemplare durch ein anderes Exemplar ersetzen.

Seit V19 haben die ersetzten Teile nicht mehr die richtige Position.
Da ich seit 8 Jahren nichts mehr in Lisp gemacht habe, finde ich den Fehler nicht.
Hat sich etwas an der Verarbeitung der Koordinaten geändert?

Könnt ihr mir helfen?

Schöne Grüße

Bernd

;;***************************************************************************


(in-package :custom)
(use-package :OLI)

#| Mit diesem Makro kann man Teile durch Exemplare ersetzen.
Dazu ist ein Quellteil erforderlich und eine Liste von Teilen.
Dies Funktioniert auch bei Baugruppen.
Die Anwendung des Makros sollte mit Bedacht erfolgen, vor allem
innerhalb gemeinsam genutzter Baugruppen. Unerwuenschte Verschiebungen
und auch Abstuerze sind moeglich.
Vorher speichern!!!

Wesentliche Teile dieses Makros sind aus "cp_ex.lsp" von
"TommiO" geklaut, dem das Lob gebuehrt.

Ver. 1.0; OSD 13; HPUX; 2005-05-19
|#
(sd-defdialog 'cp2ex
:dialog-title (sd-multi-lang-string "Copy2Inst" :german "Kopie2Exemplar")
:toolbox-button nil
:variables '(
(flag :initial-optional t)
(quelle :value-type :part-assembly
:initial-value nil
:modifies nil
:title (sd-multi-lang-string "Source Instance" :german "Quellexemplar")
:prompt-text "Quellteil (Baugruppe) auswÌhlen"
)
(prt-list :value-type :part-assembly
:initial-value nil
:multiple-items t
:prompt-text (sd-multi-lang-string "Specify the parts or assemblies for which to create instances."
:german "Teile oder Baugruppen eingeben die gemeinsam genutzt werden sollen")
:title (sd-multi-lang-string "Part" :german "Teile")

:after-input (progn
(setf flag nil)
(l-check-list prt-list)
)
)
);variables
:ok-action '(l-ok); ok-action
:help-action '(sd-display-message " Mit diesem Makro kann man Teile durch Exemplare ersetzen.
Dazu ist ein Quellteil erforderlich und eine Liste von Teilen.
Dies Funktioniert auch bei Baugruppen.
Die Anwendung des Makros sollte mit Bedacht erfolgen, vor allem
innerhalb gemeinsam genutzter Baugruppen! Bei diesen sind
unerwuenschte Verschiebungen aber auch Abstuerze moeglich.
Vorher speichern!!!")
:local-functions '(
(l-error ()
(sd-display-error (sd-multi-lang-string "Different parts have been selected. Only instances of the same object can be specified."
:german "Es wurden unterschiedliche Teile gewÌhlt. Es dÏrfen nur Exemplare gewÌhlt werden"))
)
(l-error1 ()
(sd-display-error (sd-multi-lang-string "Owner is marked as read-only."
:german "Besitzer hat Schreibschutz"))
)
(l-check-list (list)
(let (orig)
(setf orig (sd-inq-obj-contents-sysid (first list)))
(dotimes (i (length list))
(setf teil (sd-inq-obj-contents-sysid (nth i list)))
(unless (string/= orig teil)
(setf flag 'e)
)
);
;;(when (string= flag 'e)
(when (string= flag 'x) ;;zur Zeit stillgelegt
(l-error)
(setq prt-list nil)
);
(dolist (a-prt list)
(when (sd-inq-obj-parent-contents-read-only-p a-prt)
(setf flag 'f)
)
);dolist
(when (string= flag 'f)
(l-error1)
(setf prt-list nil)
)
);let
);l-check

(l-ok ()
(let (p1 p2 p3 p4 p5 p6 tmp-name orig besitzer besitzer_orig)
(setf p1 (sd-vec-xform (gpnt3d 0.0 0.0 0.0) :source-space quelle :dest-space :global))
(setf p3 (sd-vec-xform (gpnt3d 0.0 1.0 0.0) :source-space quelle :dest-space :global))
(setf p5 (sd-vec-xform (gpnt3d 1.0 0.0 0.0) :source-space quelle :dest-space :global))
(dolist (a-part prt-list)
(setf name (sd-inq-obj-basename a-part))
(setf besitzer (sd-inq-parent-obj a-part))
(setf p2 (sd-vec-xform (gpnt3d 0.0 0.0 0.0) :source-space a-part :dest-space :global))
(setf p4 (sd-vec-xform (gpnt3d 0.0 1.0 0.0) :source-space a-part :dest-space :global))
(setf p6 (sd-vec-xform (gpnt3d 1.0 0.0 0.0) :source-space a-part :dest-space :global))
;;(display besitzer)
;;(display name)
;;(display quelle )
(sd-call-cmds (progn
(delete_3d a-part)
(CREATE_MULTIPLE_PA :SHARE :owner besitzer :source quelle :name name
:match_three_pts p1 p2 p3 p4 p5 p6)
))
);;enddo
);;endlet
);l-ok
);local-functions
);sd-defdialog


;;***************************************************************************

------------------
42

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Seele
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Seele an!   Senden Sie eine Private Message an Seele  Schreiben Sie einen Gästebucheintrag für Seele

Beiträge: 411
Registriert: 11.06.2003

Intel(R) Xeon(R) W-2245 CPU @ 3,90 GHz, 64GB RAM
NVidia Quadro RTX A4000
Win10-64Bit
Elements/Direct v20.7.1.0
PartLibrary, Surfacing, 3D-PDF,
3D-Access, Unigraphics-Schnittstelle

erstellt am: 29. Apr. 2016 10:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für rmcc1980 10 Unities + Antwort hilfreich

Hallo Bernd, ...

ich habe dein Makro eben mal ausprobiert und ich muss sagen, es läuft tadellos.

Dein Problem mit dem Versetzen kommt vermutlich nicht vom Makro, sondern von der Entstehungsgeschichte des Teiles.

Durch das Austauschen vom Makro ist es ja wichtig, das die Nullpunkte der beiden Teile die Intern geführt werden auch übereinstimmen.

Bei einem anderen ähnlichem Problem, das ich mal hatte, war die Ursache, das die Flächen des Teiles über 3D-Bewegen oder Dehnen versetzt wurden.
Wurde dabei nicht das ganze Teil ausgewählt und versetzt, dann ist der Ursprungspunkt stehen geblieben, während sich die Teileflächen dazu
verschoben haben.

Wurde jetzt dein Quell-Exemplar-Teil auch so verändert und du wählst das nicht verschobene als Teil, das wieder zugeordnet wird,
verschieben sich dann die neu zugeordneten in ihrer Position.

Ich habe das mit einem neu erzeugten Würfel und deinem Makro ausprobiert und genau diesen Effekt gehabt.

Viele Grüße

Wolfgang 

------------------
alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. 

Werden wir es schaffen? Ja wir schaffen das !!! :-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz