| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: hyperlink länge (1087 mal gelesen)
|
hometuruk Mitglied Frei
Beiträge: 18 Registriert: 07.03.2003 P4 3,0GHz, Nvidia 6600GT Dual, AC2007
|
erstellt am: 20. Mai. 2008 11:32 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 20. Mai. 2008 11:37 <-- editieren / zitieren --> Unities abgeben: Nur für hometuruk
Blöde Frage, hast du aus der Zahl 50000242 einen String gemacht? .. Kannst du mal den Codeschnipsel des strcat posten ? Oder den gesamten Code?.. sonst wird das ein Rumgerate... wenn du die Erweiterung "händisch" hinbekommst, sollte keine Beschränkung vorliegen. ------------------ - 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 |
hometuruk Mitglied Frei
Beiträge: 18 Registriert: 07.03.2003 P4 3,0GHz, Nvidia 6600GT Dual, AC2007
|
erstellt am: 20. Mai. 2008 11:42 <-- editieren / zitieren --> Unities abgeben:
Danke für die schnelle Antwort und hier die gewünschten "schnipsel" (setq HYP (strcat "http://srvapp49.bogi.xxxxxxxx.de/d.web/xxxxxxxx/index?goto=search&search=result2&find=find&doc_type_short=ZEICH&doc_field_array_63=" eq)) ergibt !HYP "http://srvapp49.bogi.xxxxxxxx.de/d.web/xxxxxxxx/index?goto=search&search=resu lt2&find=find&doc_type_short=ZEICH&doc_field_array_63=50147169" Gruesse also alles korrekt denke ich Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 20. Mai. 2008 11:54 <-- editieren / zitieren --> Unities abgeben: Nur für hometuruk
eq ist auch eine Funktion .. würde ich nicht unbedingt als Variablennamen nehmen ... ------------------ - 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 |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 20. Mai. 2008 12:00 <-- editieren / zitieren --> Unities abgeben: Nur für hometuruk
kann ich so nicht ganz nachvollziehen. Habs in 2002 und 2008 getestet. Da nimmt er mir deinen Hyperlink Da Hyperlinks in Extendet Entity Datas der Subnklasse 1000 liegen, müssten diese mit 255 Bytes beschränkt sein. Vielleicht kannst Du die Systemvariable HYPERLINKBASE verwenden, und die Hyperlinks lediglich relativ angeben. Hyperlinksbase = "http://srvapp49.bogi.xxxxxxxx.de/d.web/xxxxxxxx/" und der Hyperlinks selbst zeigt nur noch auf "index?goto=search&search=result2&find=find&doc_type_short=ZEICH&doc_field_array_63=50147169"
------------------ Ing. Anton Fuchs WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 20. Mai. 2008 12:33 <-- editieren / zitieren --> Unities abgeben: Nur für hometuruk
Zitat: Original erstellt von CADmium: eq ist auch eine Funktion .. würde ich nicht unbedingt als Variablennamen nehmen ...
Wenn man eq als Variable verwenden kann, dürfte das auf eine Version < 2000i hinweisen. Ab der 2000i kommt nämlich bei solch Anweisungen (setq eq 10000) die Fehlermeldung "Assignment to protected symbol : EQ - Enter break loop?" Und z.B.: unter 2000i waren viele Sachen von der Länge her noch anders beschränkt (Layernamen mit 132 Zeichen). Gilt vielleicht auch für die Hyperlinks, die gibts doch ab der 14.01? Deswegen bitte immer die verwendetet Version angeben !!
------------------ Ing. Anton Fuchs WWW.FFZELL.AT.TC
[Diese Nachricht wurde von fuchsi am 20. Mai. 2008 editiert.] [Diese Nachricht wurde von fuchsi am 20. Mai. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hometuruk Mitglied Frei
Beiträge: 18 Registriert: 07.03.2003 P4 3,0GHz, Nvidia 6600GT Dual, AC2007
|
erstellt am: 20. Mai. 2008 12:37 <-- editieren / zitieren --> Unities abgeben:
Aber händisch das fehlende String dazutippen funzt-- komisch! AC2007 ...und übernimmt er den url-base dann auch in die "dwf-Datei"? Wir arbeiten mit "eplot classic", da dort mit whip4! auch noch nach Texten mittels des Api's gesucht werden können. In dwf6 funktioniert dies meines wissens nicht mehr (ist aber ein anderes Thema). Aber danke für die Hilfe Gruesse Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 20. Mai. 2008 12:57 <-- editieren / zitieren --> Unities abgeben: Nur für hometuruk
dann schau mal mit (entget (car (entsel)) (list "*")) ; und dann dein Objekt wählen ob er den URL komplett drangehängt hat. Sollte irgendsowas rauskommen ((-1 . <Entity name: 400676a8> ) (0 . "LINE") (330 . <Entityname: 40065cc0> ) (5 . "7F5") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbLine") (10 7.5 12.9904 0.0) (11 3.0 5.19615 0.0) (210 0.0 0.0 1.0) (-3 ("PE_URL" (1000 . "http://srvapp49.bogi.xxxxxxxx.de/d.web/xxxxxxxx/index?goto=search&search=result2&find=find&doc_type_short=ZEICH&doc_field_array_63=50147169") (1002 . "{") (1000 . "http://srvapp49.bogi.xxxxxxxx.de/d.web/xxxxxxxx/index?goto=search&search=result2&find=find&doc_type_short=ZEICH&doc_field_array_63=50147169\"") (1002 . "}") ) ) )
------------------ Ing. Anton Fuchs WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 20. Mai. 2008 13:04 <-- editieren / zitieren --> Unities abgeben: Nur für hometuruk
|
hometuruk Mitglied Frei
Beiträge: 18 Registriert: 07.03.2003 P4 3,0GHz, Nvidia 6600GT Dual, AC2007
|
erstellt am: 20. Mai. 2008 13:17 <-- editieren / zitieren --> Unities abgeben:
Nochmal etwas mehr Info: eq ist ein String. es wird nicht komplett an das objekt darangehängt es fehlt eben ab "=500..." wobei das "=" ist ja auch schon nicht drin Wenn ich dann mit "Hyperlink bearbeiten" das fehlende "=5000..." daranhänge funzt es in acad und im dwf (whip4!). Dasselbe auch in Ac2009. There is always one more bug ... and lost in stupid paranteses ...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hometuruk Mitglied Frei
Beiträge: 18 Registriert: 07.03.2003 P4 3,0GHz, Nvidia 6600GT Dual, AC2007
|
erstellt am: 20. Mai. 2008 13:20 <-- editieren / zitieren --> Unities abgeben:
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 20. Mai. 2008 13:45 <-- editieren / zitieren --> Unities abgeben: Nur für hometuruk
|
hometuruk Mitglied Frei
Beiträge: 18 Registriert: 07.03.2003 P4 3,0GHz, Nvidia 6600GT Dual, AC2007
|
erstellt am: 20. Mai. 2008 14:16 <-- editieren / zitieren --> Unities abgeben:
;wenn das weiterhilft und Danke für die Mühe (defun c:eqp-BTV() (princ) (setq Dateiname (getstring "Datei von Koordinatliste eingeben (z.B. kliste.txt): ")) (if (= Dateiname "")(setq Dateiname "pumpen.csv")(setq Dateiname "pumpen.csv")) ;stringdatei ;suche Pumpen (setq aus (ssget "x" '((0 . "TEXT") (1 . "J-*")))) ;suche nach text mit "J-*" (setq l (sslength aus)) (setq l1 0) (while (< l1 l) (setq temp1 (ssname aus l1)) (setq all1 (entget temp1) val1 (cdr (assoc 1 all1)) );endsetq (setq l1 (+ l1 1)) (princ "Zähler")(princ);counter (princ l1)(princ);print counter (princ "--")(Princ) (princ val1)(princ) (setq Datei (open (findfile Dateiname) "r")) (setq zeile 0) (while zeile (setq zeile (read-line datei)) (setq liste (list zeile)) (if (= zeile nil) (print " suche: -> ") (progn (setq Listenzeile (read zeile)) (setq STR (car Listenzeile)) (setq EQ (car (cdr Listenzeile))) (setq Bt (last listenzeile)) (if (= STR val1) (progn (princ (strcat " Treffer.... -> " val1 "\n")) (regapp "PUMPE") (setq temp3 (cons 1000 eq)) (setq upx2 '"PUMPE") (setq upx4 (list upx2 temp3)) (setq HYP (strcat "http://srvapp49.bogi.xxxxxxxxx.de/d.web/xxxxxxxxx/index?goto=search&search=result2&find=find&doc_type_short=ZEICH&doc_field_array_63=" eq)) (command "-hyperlink" "ei" "OB" temp1 "" hyp "" "");set hyperlink (setq upx (list (list '-3 upx4))) (setq up (append all1 upx)) (entmod up) );endprogn treffer );endif );endprogn );endwhile if );endwhile zeile (close datei) (princ) );endwhile l (command "regenall") ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 20. Mai. 2008 14:34 <-- editieren / zitieren --> Unities abgeben: Nur für hometuruk
Jetzt haben wir es eingekreist !! Dieser Fehler ist nachvollziehbar. Der Hyperlink selbst ist nicht beschränkt, aber die Konsoleneingabe ist anscheinend aus 132 zeichen beschränkt. Ist bei mir genauso. Ich bastle mal eine Funktion, die die EEDs des Hyperlinks direkt dranschreibt. Dauert aber ein bisschen. ------------------ Ing. Anton Fuchs WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 20. Mai. 2008 14:43 <-- editieren / zitieren --> Unities abgeben: Nur für hometuruk
erste Version (ohne anzuzeigenden Text im Hyperlink, aber er funktioniert) (defun InsertHyperLink ( ename HyperlInk / edate ) (if (not (tblsearch "APPID" "PE_URL")) (regapp "PE_URL")) (setq edate (append (entget ename) (list (list -3 (list "PE_URL" (cons 1000 HyperLink)))) ) ) (entmod edate) ) und anstatt
(command "-hyperlink" "ei" "OB" temp1 "" hyp "" "");set hyperlink schreibst Du jetzt (InsertHyperLink temp1 hyp) ------------------ Ing. Anton Fuchs WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 20. Mai. 2008 14:47 <-- editieren / zitieren --> Unities abgeben: Nur für hometuruk
endgültige Version (defun InsertHyperLink ( ename HyperlInk HyperLinkShortText / edate ) (if (not (tblsearch "APPID" "PE_URL")) (regapp "PE_URL")) (setq edate (append (entget ename) (list (list -3 (list "PE_URL" (cons 1000 HyperLink) (cons 1002 "{") (cons 1000 HyperLinkShortText) (cons 1002 "{") (cons 1071 0) (cons 1002 "}") (cons 1002 "}") ))) ) ) (entmod edate) ) (InsertHyperLink temp1 hyp "Dieser Text wird als Shortcut des Hyperlinks angezeigt") ------------------ Ing. Anton Fuchs WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hometuruk Mitglied Frei
Beiträge: 18 Registriert: 07.03.2003 P4 3,0GHz, Nvidia 6600GT Dual, AC2007
|
erstellt am: 20. Mai. 2008 16:06 <-- editieren / zitieren --> Unities abgeben:
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 20. Mai. 2008 17:09 <-- editieren / zitieren --> Unities abgeben: Nur für hometuruk
einige Anmerkungen Code: (setq Dateiname (getstring "Datei von Koordinatliste eingeben (z.B. kliste.txt): ")) (if (= Dateiname "") (setq Dateiname "pumpen.csv") (setq Dateiname "pumpen.csv") )
Hm. komischer Konstrukt. Für was soll denn der User einen Dateinamen eingeben, wennst ihn sowieso mit pumpen.csv überschreibst ?
Code: (setq STR (car Listenzeile)) (setq EQ (car (cdr Listenzeile)))
STR und EQ sind Symbolnamen und DÜRFEN nicht als Variablennamen verwendet werden ! ------------------ Ing. Anton Fuchs WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hometuruk Mitglied Frei
Beiträge: 18 Registriert: 07.03.2003 P4 3,0GHz, Nvidia 6600GT Dual, AC2007
|
erstellt am: 21. Mai. 2008 09:38 <-- editieren / zitieren --> Unities abgeben:
Entschuldigung das ich mich jetzt erst melde, aber irgendwann ist am Tag auch "FEIERABEND". Vielen, vielen Dank, das Teil funzt jetzt super, und ohne deine Hilfe hätte ich es nicht so schnell geschafft, denn -I was "L ost I n S tupid P aranteses" and "variables". Zu deinem letzten Post: Der Dateiname ist natürlich noch offen, denn ich will das Teil eventuell noch "DCL'len", und zum Testen ist es besser erst einmal nur ein "RETURN" einzubauen anstatt den Dateinamen zu tippen ;-) Das mit den Variablennamen verstehe ich nicht ganz, denn es funzt ja auch so. Kann ich aber auch ändern :-). Frohes schaffen und echt nocheinmal vielen Dank. Grüsse aus Ingolstadt Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 21. Mai. 2008 15:55 <-- editieren / zitieren --> Unities abgeben: Nur für hometuruk
Zitat: Original erstellt von hometuruk: Das mit den Variablennamen verstehe ich nicht ganz, denn es funzt ja auch so. Kann ich aber auch ändern :-).
Funktionieren tuts eh, weil Du den befehl EQ nirgends verwendest. Aber alle Lispprogramme, die den befehl EQ verwenden , gehen ab deinem LISP nicht mehr. 1. EQ ist ein Lispbefehl ! Wenn du den als Variablennmame verwendest, gibt es den Befehl nicht mehr. z.B: (setq cond "mein Wert") Ab der Ausführung dieser Anweisung wirst Du keine COND mehr ausführen können, weil Du dem Symbol COND jetzt einfach irgendeinen Wert zugewiesen hast. (du kannst auch schreiben (setq setq nil). Das geht genau einmal, und dann nie wieder (zumindest ind er zeichnungssitzung) und 2. STR ist ein Symbol das beim TYPE Befehl als Rückgabewert definiert ist (setq a1 "Das ist ein STring") (type a1) -> 'STR ------------------ Ing. Anton Fuchs WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |