Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Mechanical Desktop
  Konstruktionsvariablen per Befehl (LISP) ändern

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 Autodesk Produkte
Autor Thema:  Konstruktionsvariablen per Befehl (LISP) ändern (464 mal gelesen)
Peter Neubauer
Mitglied
Dipl. Ing.


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

Beiträge: 19
Registriert: 13.02.2002

erstellt am: 05. Nov. 2002 17:05    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 zusammen,

ich möchte Konstruktionsvariablen per Befehl (und nicht über das Menü !) ändern.

So kann ich dann mit einem einfachen LISP-Befehl schnell + unkomliziert Einfluß auf Abmessungen nehmen.

Wie geht das ?

Schon mal DANKE im Voraus !!!

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

HG503
Mitglied
Konstruktohr Werkzeugbau


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

Beiträge: 76
Registriert: 04.06.2002

MTD4-6 Rhino3.0

erstellt am: 06. Nov. 2002 17:50    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 Peter Neubauer 10 Unities + Antwort hilfreich

Klar kann man mit Lisp die Parameter ändere
Aber was fielst du damit erreichen,
beschreibt mal ein Beispiel

Ein Lisp Beispiel
Wenn ich die Bemassung strecke und dann das Lisp Programm starte,
werden die Daten übernommen

(defun C:bemmove ()
  (Setvar "Cmdecho" 0)
  (vl-load-com)
  (setq acadobject (vlax-get-acad-object))
  (setq acadDocument (vlax-get-property acadObject 'ActiveDocument))
  (setq macd (vlax-invoke-method acadobject 'GetInterfaceObject "Mcad.Application"))
  (setq actdoc  (vlax-get-property macd 'ActiveDocument))
  (setq utilc  (vlax-get-property actdoc 'Utility)) 
  (princ "bemwählen")
(setq wahle (ssget '((0 . "DIMENSION")(-3 ("AD_SKETCHDIM")) ) ))
  (setq listew '())
(setq INDEX 0.0)
  (while (< INdex (sslength wahle))
  (setq 1el  (ssname wahle Index))
  (setq 1elli (entget 1el '("AD_SKETCHDIM") ))
  (setq parthandel (cdr (nth 1 (last(assoc -3  1elli)))))
    (setq parametername (cdr (nth 2 (last(assoc -3  1elli)))))
  (setq wertbem (cdr (assoc 42 1elli)))
    (setq bemliste (append (list parthandel) (list parametername) (list wertbem)))
  (setq listew (cons  bemliste listew))
  (setq index (1+ Index))
)
  (setq listew (reverse listew))
  (setq INDEX 0.0)
  (foreach wertbem listew
    (setq objid (vla-get-objectid (vla-handleToObject acadDocument  (nth 0 wertbem ))))
    (setq part (vlax-invoke-method utilc 'GetObjectFromID objid 25 0))
    (setq parameters (vlax-get-property part 'parameters))
   
    (vlax-for parameter parameters (if (= (vlax-get-property parameter 'name) (nth 1 wertbem ))
(vlax-put-property parameter 'Value (nth 2 wertbem ))
))
    )
  (command "amupdate" "")
  )


Gruss HG503

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

Peter Neubauer
Mitglied
Dipl. Ing.


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

Beiträge: 19
Registriert: 13.02.2002

erstellt am: 07. Nov. 2002 09:29    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

Ich habe aus verschiedenen Einzelteilen in MD4 eine Baugruppe gebaut. Die Abmessungen dieser Einzelteile können über globale Konstruktionsvariable verändert werden. Jetzt möchte ich dies über LISP tun, und nicht umständlich das Menü öffnen, die Variable suchen (!!) ...

Wie kann ich zudem den aktuellen Wert einer solchen globalen Konstruktionsvariabel abfragen, und in LISP weiterverwenden ?

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

HG503
Mitglied
Konstruktohr Werkzeugbau


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

Beiträge: 76
Registriert: 04.06.2002

MTD4-6 Rhino3.0

erstellt am: 07. Nov. 2002 17:03    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 Peter Neubauer 10 Unities + Antwort hilfreich

Hie ein Lisp Beispiel für GlobalParameter


(defun C:WertGlobalParameter  ()
  (Setvar "Cmdecho" 0)
  (vl-load-com)
  (setq acadobject (vlax-get-acad-object))
  (setq acadDocument (vlax-get-property acadObject 'ActiveDocument))
  (setq macd (vlax-invoke-method acadobject 'GetInterfaceObject "Mcad.Application"))
  (setq actdoc  (vlax-get-property macd 'ActiveDocument))
  (setq utilc  (vlax-get-property actdoc 'Utility))
(setq  GlobalParameters  (vlax-get-property actdoc 'GlobalParameters))
  (setq Nameparamter (getstring "\n Name Parameter :"))

  (setq GlobalPara '())
  (vlax-for parameter GlobalParameters
    (if ( = (vlax-get-property parameter 'name)Nameparamter)
      (setq GlobalPara parameter)
      ))
 
  (if (/= nil GlobalPara)
    (progn
    (setq Value (getdist "\n Wert Parameter :"))
(vlax-put-property GlobalPara 'Value Value)
    ))
  )

Grus HG503

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

HG503
Mitglied
Konstruktohr Werkzeugbau


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

Beiträge: 76
Registriert: 04.06.2002

MTD4-6 Rhino3.0

erstellt am: 08. Nov. 2002 09:10    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 Peter Neubauer 10 Unities + Antwort hilfreich

Hallo Peter

Man kann fast alles mit Lisp über Active X für MDTMechanical Desktop Programmieren .
Nur Autodesk muß es zur Verfügung stellen nicht nur über C++
Weil es nun mal mit VisualLisp  einfacher ist .

Es ist auch so das man die interne Stückliesten Bank auch mit Lisp ändern kann .

Habe mal eine frage warum du alles mit global Parameter machst
Ist es nicht besser zu Kombinieren ?

Grus HG503

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

Peter Neubauer
Mitglied
Dipl. Ing.


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

Beiträge: 19
Registriert: 13.02.2002

erstellt am: 06. Mrz. 2003 17:47    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

Halo,

hier eine späte Antwort auf deine Frage 

ich mußte damals globale Variablen verwenden, da diese auf mehrere Einzelteile in einer Baugruppe "wirken" sollte.

MfG
Peter N.

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)2023 CAD.de | Impressum | Datenschutz