Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Schraffurbasispunkt

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:  Schraffurbasispunkt (811 mal gelesen)
fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 10. Jun. 2008 11:49    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,

Ich will programmiertechnisch für eine Auswahl von Schraffuren einen gemeinsamen Schraffurbasispunkt definieren.

Es gibt da eine Eigenschaft Origin bei Schraffuren.
Wenn ich nachträglich (vla-put-Origin oHatch arrOrigin) anwende, wobei arrOrigin = (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbDoubles (cons 0 1)) '(42 0))) ist, dann kann ich die geänderte Eigenschaft wieder auslesen - die Schraffur passt sich jedoch nicht an. Ein anschließendes Update, Evalute oder Regen hat keine Auswirkung.

Was könnte man da tun?

VG, Fred

------------------
Fred Tomke
Dipl.-Ing. (FH) Landespflege

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 10. Jun. 2008 12:27    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 fred_tomke 10 Unities + Antwort hilfreich

geht denn das Ändern im Eigenschaftsfenster?
Verdächtige sind auf jeden Fall noch die Sysvars : HPORIGINMODE und HPINHERIT


Aber selbst wenn ich bei mir bei 2 Schraffuren gleicher Umgrenzung im Eigenschaftsfenster bie Ursprung X und Y "Variiert" drin zu stehen hab, sind die Schraffuren deckungsgleich ...
------------------
       - 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

fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 10. Jun. 2008 13: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

Hallo CADmium,

vielen Dank für Deine Rückmeldung. Es handelt sich um Schraffuren benachbarter Flächen, die auf einer zusätzlichen Flächenfüllung liegen. Haben jetzt die Linienschraffuren unterschiedliche Basispunkte, sieht das doof aus.

Die Schraffuren werden aber programmiertechnisch (via ActiveX) erzeugt, deshalb soll gleich beim Einfügen ein definierter Schraffurbasispunkt vergeben werden. Da das aber mit HPORIGIN nicht funktionierte (Map 2009), wollte ich erst mal sehen, was vla-put-origin macht. Ich kann zwar die zugewiesene Eigenschaft wieder abfragen, aber das sichtbare Ergebnis ändert sich nicht.

Fred

------------------
Fred Tomke
Dipl.-Ing. (FH) Landespflege

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

fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 10. Jun. 2008 13:13    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 CADmium

ich habe mal ein Beispiel aus einem anderen Zusammenhang beigefügt.
Hier sollen zwei Schraffuren mit einem Abstand zueinander in unterschiedlichen Farben erzeugt werden. Um diesen Abstand bei zwei gleichen Schraffuren zu erreichen, wird der Basispunkt kurzerhand zugewiesen. Der zugewiesene Eigenschaftswert lässt sich abfragen - aber das Ergebnis ändert sich nicht. Erst wenn du die rote Schraffur doppelklickst und bei Schraffur bearbeiten auf Aktuellen Ursprung verwenden klickst und dann OK, wird es sichtbar. Und der Eigenschaftswert ist immer noch der selbe. Suspekt.

Fred

Code:

(defun c:test (/ vlaBound lstIslands oSpace)
  (setq oSpace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
  (setq vlaBound (vla-AddLightWeightPolyline oSpace (list_to_variant (list 0.0 0.0 0.0 200.0 200.0 200.0 200.0 0.0) vlax-vbDouble)))
  (vla-put-closed vlaBound :vlax-true)

  (setq lstIslands (list (vla-AddCircle oSpace (vlax-3d-point (list 30.0 30. 0.0)) 20.0)
(vla-AddCircle oSpace (vlax-3d-point (list 60.0 60. 0.0)) 20.0)))
 
  (schraffbe "ANSI31" 5 0.0 vlaBound lstIslands 0.0)
  (schraffbe "ANSI31" 1 0.0 vlaBound lstIslands 42.0)
  (vla-ZoomExtents (vlax-get-acad-object))
  (princ)
); test

(defun schraffbe (muster farbe winkel poly ss abstand / vlaHatch entInsel)
  (if (and (setq vlaHatch (vl-catch-all-apply 'vla-addhatch (list (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) acHatchPatternTypePredefined muster :vlax-true AcHatchObject)))
    (not (vl-catch-all-error-p vlaHatch)))
    (progn
      (vla-put-HatchStyle vlaHatch acHatchStyleOuter)
      (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-AppendOuterLoop (list vlaHatch (list_to_variant (list poly) vlax-vbObject))))
(vla-erase vlaHatch)
(progn
  (vla-put-color vlaHatch farbe)
  (foreach vlaInsel ss (vl-catch-all-apply 'vla-AppendInnerLoop (list vlaHatch (list_to_variant (list vlaInsel) vlax-vbObject))))
  (vl-catch-all-apply 'vla-put-PatternScale (list vlaHatch 7.5))
  (vl-catch-all-apply 'vla-put-PatternAngle (list vlaHatch (* (/ winkel 180.0) pi)))
  (vl-catch-all-apply 'vla-put-Origin (list vlaHatch (list_to_variant (list (* abstand (sqrt 2.0)) 0.0) vlax-vbDouble)))
  (vl-catch-all-apply 'vla-Evaluate (list vlaHatch))
  (vl-catch-all-apply 'vla-Update (list vlaHatch))
); progn
      ); if
    ); progn
  ); if
); schraffbe

(defun list_to_variant (lstDoubles intType)
  (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray intType (cons 0 (- (length lstDoubles) 1))) lstDoubles))
); list_to_variant

(defun vo->ss (lstObj / ssAusw)
  (setq ssAusw (ssadd (vlax-vla-object->ename (car lstObj))))
  (foreach vlaObj (cdr lstObj) (ssadd (vlax-vla-object->ename vlaObj) ssAusw))
  ssAusw
); vo->ss


------------------
Fred Tomke
Dipl.-Ing. (FH) Landespflege

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 10. Jun. 2008 14: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 Nur für fred_tomke 10 Unities + Antwort hilfreich

Zitat:

Code:

(defun c:test (/ vlaBound lstIslands oSpace)
  (setq oSpace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
  (setq vlaBound (vla-AddLightWeightPolyline oSpace (list_to_variant (list 0.0 0.0 0.0 200.0 200.0 200.0 200.0 0.0) vlax-vbDouble)))
  (vla-put-closed vlaBound :vlax-true)

  (setq lstIslands (list (vla-AddCircle oSpace (vlax-3d-point (list 30.0 30. 0.0)) 20.0)
(vla-AddCircle oSpace (vlax-3d-point (list 60.0 60. 0.0)) 20.0)))
 
  (schraffbe "ANSI31" 5 0.0 vlaBound lstIslands 0.0)
  (schraffbe "ANSI31" 1 0.0 vlaBound lstIslands 42.0)
  (vla-ZoomExtents (vlax-get-acad-object))
  (princ)
); test
[...]


[/i]


Wenn ich sowas sehe, dann frage ich mich immer, warum hier überhaupt noch LISP als äußere Sprachhülle verwendet wird :-)

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

Ex-Mitglied
CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 10. Jun. 2008 14:34    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 fred_tomke 10 Unities + Antwort hilfreich

VBA ... da fast alles nur über die ACTIVEX-Schnittstelle gesteuert wird..

------------------
  - 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

Ex-Mitglied
CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 10. Jun. 2008 15: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 fred_tomke 10 Unities + Antwort hilfreich

Es ist beides ACTIVEX !!!! einmal aus Lisp angesprochen, einmal aus VBA ... daher ist geschwindigkeitstechnisch irrelevant .. vielleicht noch was overheadmäßiges und so, aber ich denke , das spielt nicht die Rolle. Wenn du es genau wissen willst , bleibt nur bei (sehr vielen operationen) mitzustoppen.

------------------
  - 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

fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 10. Jun. 2008 16:45    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

Ähm, äh, 'schuljung, det ick störe, aber: Hat rein zuuuufällig jemand mal den Code getestet?

Fred

------------------
Fred Tomke
Dipl.-Ing. (FH) Landespflege

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 10. Jun. 2008 16:53    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 fred_tomke 10 Unities + Antwort hilfreich

ich nicht, ich hab aber geschrieben, das die Änderung im Einenschaftsfenster auch nicht die wirkung zeigt ..

------------------
  - 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

fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 10. Jun. 2008 16:58    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

Zitat:
Original erstellt von archtools:
Wenn ich sowas sehe, dann frage ich mich immer, warum hier überhaupt noch LISP als äußere Sprachhülle verwendet wird :-)

Vielleicht, weil der Rest in Lisp ohne ActiveX ist? 

Fred

------------------
Fred Tomke
Dipl.-Ing. (FH) Landespflege

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 10. Jun. 2008 17:32    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 fred_tomke 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fred_tomke:
Ähm, äh, 'schuljung, det ick störe, aber: Hat rein zuuuufällig jemand mal den Code getestet?

Fred


Ja, ikke.

Füge mal

Code:
(setq hatchelist (entget (entlast)))
(entmod (subst (cons 43 (* abstand (sqrt 2.0))) (assoc 43 hatchelist) hatchelist))

nach dem
(vl-catch-all-apply 'vla-Update (list vlaHatch))
ein, dass läuft.

Irgendetwas klappt da wohl nicht mit dem vla-put-Origin.


------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 11. Jun. 2008 00:17    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 fred_tomke 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von CAD-Huebner:
Ja, ikke.

Füge mal

Code:
(setq hatchelist (entget (entlast)))
(entmod (subst (cons 43 (* abstand (sqrt 2.0))) (assoc 43 hatchelist) hatchelist))


Ach, endlich! SETQ, SUBST, CONS, ASSOC - endlich wieder richtiges Lisp und nicht nur ein paar Klammern um ActiveX-Ausdrücke :-)

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

fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 11. Jun. 2008 07:58    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 Udo,

wie immer vielen lieben Dank und beste Grüße nach Oldenburg!

Fred

------------------
Fred Tomke
Dipl.-Ing. (FH) Landespflege

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